Это часть моего кода:Как использовать HttpResponseForbidden в этом случае?
def get_queryset(self):
if self.request.user.links.filter(pk=self.kwargs['pk']).exists():
return super(View, self).get_queryset()
else:
return HttpResponseForbidden()
Я хочу, чтобы проверить, если пользователь посещает свою ссылку и если не вернется HttpResponseForbidden. Мой код работает хорошо с raise PermissionDenied
, но, как я прочитал, это плохая практика.
Как сделать мой вид работы с HttpResponseForbidden
?
EDIT: Если я использую HttpResponseForbidden() Я ловлю 'HttpResponseForbidden' object has no attribute 'filter'
«Я читал, что это плохая практика» - где? Зачем? Это именно то, для чего. –
@ DanielRoseman http://stackoverflow.com/questions/18574151/django-httpresponseforbidden-not-working – pythad
Вы возвращаетесь, а не поднимаете 'HttpResponseForbidden' из функции' get_queryset'. И тогда где-то вы, вероятно, пытаетесь отфильтровать результаты 'get_queryset', которые затем должны быть экземпляром' QuerySet', но на самом деле является экземпляром 'HttpResponseForbidden'. – Charl