【发布时间】:2021-01-16 11:45:38
【问题描述】:
我正在尝试通过传递到 url 中的查询字符串的参数来过滤我的“帖子”模型。如果没有给出这个参数,我希望 url 只返回所有帖子。
据我(显然不正确)的理解,它应该如何工作:
urls.py:
path('feed?category=<str:category>', views.Posts.as_view())
views.py:
def Posts(APIView):
def get(self, request, **kwargs):
if self.kwargs['category']:
queryset = Post.objects.filter(category_name = self.kwargs['category'])
else:
queryset = Post.objects.all()
使用上面的代码,我希望通过请求 url .../feed,视图会将查询集设置为所有帖子,但是如果我输入 url .../feed?category=x,它只会返回此类别的帖子。
目前,该程序不这样运行。我将如何完成此功能?
谢谢,格雷
【问题讨论】:
-
path只检查 URL 的 path,?之后的部分是 not 路径,即 查询字符串,所以你不能在路径中过滤。
标签: django api url filter django-rest-framework