У меня есть декоратор, который выполняет тот же запрос, что и функция, к которой он прикреплен.Есть ли способ просто передать Queryset из декоратора, чтобы мне не нужно было выполнять запрос дважды?
decorator.py
def is_wifi_author(func):
def wrapper(request, wifi_id, **kwargs):
wifi = get_object_or_404(Wifi, pk=wifi_id) # Queryset
# Is this correct?
if request.user != wifi.author:
return redirect('youshallnotpass')
return func(request, wifi_id, **kwargs)
return wrapper
views.py
@is_wifi_author
def edit(request, wifi_id):
# print(request)
wifi = get_object_or_404(Wifi, pk=wifi_id) # Same queryset
# The rest of the view
return render(request, 'app/template.html')
Да, просто проверяю, есть ли у пользователя доступ для редактирования сообщения.Любые комментарии приветствуются.