when trying to start the server it cannot find the decorator
from django.contrib.auth.decorators import login_required, user_passes_test, staff_member_required
...
@staff_member_required
def delete_service_view(request, service_id):
service = get_object_or_404(Service, pk=service_id)
service.delete()
return redirect('index')
@staff_member_required
def toggle_trusted_from_service_view(request, user_id):
if request.method == 'POST':
try:
user = User.objects.get(pk=user_id)
user.isTrusted = not user.isTrusted
user.save()
return redirect('service_detail', service_id=request.POST.get('service_id'))
except User.DoesNotExist:
return HttpResponseForbidden("User not found.")
else:
return HttpResponseForbidden("Invalid enquiry method.")
When i try python manage.py runserver
File "C:\Users\alexe\djangoshop\dshop\main\views.py", line 3, in <module>
from django.contrib.auth.decorators import login_required, user_passes_test, staff_member_required
ImportError: cannot import name 'staff_member_required' from 'django.contrib.auth.decorators' (C:\Users\alexe\djangoshop\dshop\dshop_new_env\Lib\site-packages\django\contrib\auth\decorators.py)
I've already recreated the environment and reinstalled all dependencies
The decorator does not reside there, it is made for the admin site, so:
from django.contrib.admin.views.decorators import staff_member_required
By default, this also redirects to the admin login if the user is not a staff user.