Использование доступа в Django используя is_staff is_superuser
Всем привет не могу разобраться. Хочу запретить во view в частности CreateView создавать записи пользователям, если у него не стоят галочки is_staff или is_superuser. Подскажите как это правильно сделать? Использую классы generic.
Ответы (1 шт):
Автор решения: gef3dx
→ Ссылка
Тема закрыта всем спасибо!
Классы generic наследуются от BaseUpdateView в котором есть как и в классе View методы get и post то есть их можно переопределить.
class UserViewList(LoginRequiredMixin, ListView):
template_name = 'userlist.html'
model = CustomUser
paginate_by = 15
context_object_name = 'users'
def get(self, request, *args, **kwargs):
if self.request.user.is_staff:
self.object = None
return super().get(request, *args, **kwargs)
else:
return redirect('home')
def post(self, request, *args, **kwargs):
if self.request.user.is_staff:
self.object = None
return super().post(request, *args, **kwargs)
else:
return redirect('home')
def get_queryset(self, **kwargs):
queryset = CustomUser.objects.all()
return queryset