57👍
✅
Try:
from django.contrib.auth.decorators import user_passes_test
def foo_view(request):
# ...
foo_view = user_passes_test(lambda u: u.is_superuser)(foo_view)
Or (with Python >= 2.4):
from django.contrib.auth.decorators import user_passes_test
@user_passes_test(lambda u: u.is_superuser)
def foo_view(request):
# ...
4👍
The code you suggested works perfect for me, I used it in many projects since Django 1.4:
from django.contrib.auth.decorators import login_required
from django.http import HttpResponse
@login_required
def foo_view(request):
if not request.user.is_superuser:
return HttpResponse('The user is not superuser')
# Do whatever you need to do
This code works perfect for me since Django 1.4 to 1.7 at least.
- [Django]-PyCharm: DJANGO_SETTINGS_MODULE is undefined
- [Django]-In django, how do I sort a model on a field and then get the last item?
- [Django]-Sending HTML email in django
0👍
Above answers seems to be for very early versions of django. They are bit complicated than for the more later version
for django 1.11 here is a bit similar but simpler strategy.
click here
- [Django]-Django – Annotate multiple fields from a Subquery
- [Django]-Django Footer and header on each page with {% extends }
- [Django]-Django 1.8 KeyError: 'manager' on relationship
Source:stackexchange.com