Мне нужно создать промежуточное программное обеспечение, чтобы проверить, является ли пользователь администратором. или нет, а если нет, перенаправьте его на домашнюю страницу. Я думаю, мне следует использовать @permission_required, но я не уверен, как использовать его в промежуточном программном обеспечении.
Это функция для создания нового пользователя:
Код: Выделить всё
# views.py
def createNewUser(request):
if request.method == 'POST':
user = User.objects.create(username=request.POST.get('username'),
email=request.POST.get('email'),
password=request.POST.get('password'))
if request.POST.get('is_admin') == 'True':
is_admin = 'True'
else:
is_admin = 'False'
user.user_permissions.clear()
user.save()
useraccount = UserAccount.objects.create(user=user, is_admin=is_admin)
useraccount.save()
return redirect('users')
return render(request, 'adminpanel/create_user.html', {})
Теперь мне нужно проверять его разрешения перед каждой функцией:
Код: Выделить всё
@permission_required('poll.view_category', login_url='home')
def home(request):
return render(request, 'adminpanel/main.html', {})
И что лучше использовать промежуточное программное обеспечение на основе функций или классов? В чем разница?
Подробнее здесь: https://stackoverflow.com/questions/766 ... -in-django