J'utilise Django. Je tente de définir le modèle à utiliser en fonction du niveau d'accès de l'utilisateur django. Comme vous pouvez le voir, j'utilise LoginRequiredMixin et generic.TemplateView.Comment définir le template_name en utilisant generic.TemplateView basé sur is_authenticated vs is_superuser?
C'est ce que je voudrais faire:
Ce code est utilisé dans views.py.
class TableView(LoginRequiredMixin, generic.TemplateView):
if user.is_superuser == True:
template_name = 'achtable.html'
elif user.is_authenticated:
template_name = 'userachtable.html'
Malheureusement, il semble que je ne peux pas accéder à l'utilisateur. de cette façon.
Dans views.py J'ai aussi les vues api qui fonctionnent comme prévu en fonction de l'authentification de l'utilisateur. C'est une suit:
class MyList(LoginRequiredMixin, generics.ListCreateAPIView):
serializer_class = MySerializer
def get_queryset(self):
if self.request.user.is_superuser==True:
queryset = ImportantStuff.objects.all()
return queryset
elif self.request.user.is_authenticated():
queryset = ImportantStuff.objects.all()
return queryset.filter(claimed=False)
Toute contribution est appréciée. Je vous remercie.