J'essaye d'éliminer le code redondant en créant un décorateur pour gérer une logique simple qui est toujours répétée. Fondamentalement, chaque vue que je crée a la logique suivante pour vérifier si un utilisateur est dans une classe.Demande d'accès utilisateur et paramètres d'url dans le décorateur django
@login_required
def view(request, class_id):
class_ = UserClasses.objects.get(user=request.user, class_id=class_id)
# if the user is in the class
if class_:
J'aimerais faire ce qui suit:
Vue:
@user_passes_test(in_class(request.user, class_id))
@login_required
def view(request, class_id):
Décorateur:
from apps.classes.models import UserClasses
def in_class(request, class_id):
class_ = UserClasses.objects.get(user=request.user, class_id=class_id)
if class_:
return true
else:
return false
Quelle est la meilleure façon de s'y prendre pour y parvenir?