【发布时间】:2019-09-04 14:37:47
【问题描述】:
我想制作一个 api 来从已发布的博客文章列表中获取博客的详细视图。为了解决这个问题,我使用 get_queryset() 过滤器来解决这个问题,但它只是返回所有列表,即没有过滤器起作用。
我已经使用了如下所示的代码:
models.py
class BlogModel (models.Model) :
heading = models.CharField(max_length=254)
blog = models.TextField()
author = models.CharField(max_length=254)
views.py
class BlogRetrieveView(generics.RetrieveUpdateDeleteAPIView):
serializer_class=BlogListSerializer
queryset=BlogModel.objects.all()
lookup_field='blog_id'
def get_queryset(self,*args, **kwargs):
return BlogModel.objects.filter(
blog__id=self.kwargs['blog_id']
序列化器.py
class BlogListSerializer(serializers.ModelSerializer):
class Meta:
model = BlogModel
fields = '__all__'
urls.py
url(r'^blog/(?P<blog_id>\d+)/$',BlogRetrieveView.as_view()),
我得到以下输出:
This shows 1 out of 7 blog post shown in a list. 显然,没有应用过滤器。
编辑 1:根据给定的建议,我在 localhost 上的代码可以正常工作,但生产网站仍然停留在上述问题中提到的情况。这可能是什么原因?
【问题讨论】:
-
你正在尝试哪个网址?
-
/api/blog/9 存在 id 为 9 的博客文章。并且所有博客文章都被显示,即与 /api/blog 的输出相同
-
/api/blog/9/... 以/结尾(斜线) -
不行,还是不行
标签: python python-2.7 filter django-rest-framework django-1.11