提问人:AlenaSap 提问时间:9/28/2023 更新时间:9/28/2023 访问量:24
使用 FilterSet for Anonymous 筛选 QuerySet。如何安装异常 401 UNAuthorized
filter queryset with filterset for anonymous. How install exception 401 UNAuthorized
问:
我是 django 的初学者开发人员。我做网站foodgram。在这里,您可以发布食谱、订阅作者、将食谱添加到您的购物清单中。我尝试为使用 bu shopping_cart 和 favorite 作为过滤器集的用户安装过滤请求。但是我不能为匿名安装例外。对于请求 /api/recipes/?is_in_shopping_cart 显示所有配方。但必须是错误 401 未自动化
我的代码
滤波器
class CustomFilters(filters.FilterSet):
tags = filters.ModelMultipleChoiceFilter(field_name='tags__slug',
to_field_name='slug',
queryset=Tag.objects.all())
author = filters.NumberFilter(field_name='author')
is_favorited = filters.BooleanFilter(field_name='is_favorited',
method='get_is_favorited')
is_in_shopping_cart = filters.BooleanFilter(
field_name='is_in_shopping_cart',
method='get_is_in_shopping_cart'
)
def get_is_favorited(self, queryset, name, value):
user = self.request.user
if (user.is_authenticated and value is True
and name == 'is_favorited'):
return queryset.filter(recipes_favorite_recipes__user=user)
return Response(status=status.HTTP_401_UNAUTHORIZED)
def get_is_in_shopping_cart(self, queryset, name, value):
user = self.request.user
if (
user.is_authenticated and value is True
and name == 'is_in_shopping_cart'
):
return queryset.filter(recipes_shopping_cart_recipes__user=user)
return Response(status=status.HTTP_401_UNAUTHORIZED)
class Meta:
model = Recipes
fields = ['tags', 'author', "is_in_shopping_cart", "is_favorited"]
如果 I 我删除了过滤器中的方法条件并只保留
Response(status=status.HTTP_401_Unauthorized)
通过匿名请求,食谱仍然会出现,并且网站上会出现错误。我很乐意提供任何建议
答: 暂无答案
上一个:C++ 连续内存布局中的匿名联合
评论