在Django-Rest-Fram中如何通过id查找对象

2024-10-01 13:32:04 发布

您现在位置:Python中文网/ 问答频道 /正文

在Django-Rest框架中,我不能通过id来获得对象。我有一个这样的模型:

class BlogPost(models.Model):
    title = models.CharField(max_length=128)    
    content = models.TextField()    
    created = models.DateTimeField(auto_now_add=True) 

然后我编写一个序列化程序:

^{pr2}$

在我的views.py中,我有这样一个:

class BlogPostListFilter(dajngo_filter.FilterSet):
     blog_post_id = django_filters.NumerFilter(name = 'id')

     class Meta:
          model = BlogPost
          fiields = ['blog_post_id']


class BlogPostList(generics.ListCreateAPIView):
     queryset = BlogPost.objects.all()
     serializer_class = BlogPostSerializer
     permission_classes = (AllowAny,)
     filter_class = BlogPostListFilter
     paginate_by = 100

我的网址里有这样的代码:

url(r'^blogpost/$', ListCreateAPIView.as_view(model=BlogPost), name='blogpost-list'), 

但当我在浏览器http://example.com/blogpost/?blog_post_id=1中编写时,我拥有所有对象


Tags: 对象djangonamerestidmodelmodelsblog
1条回答
网友
1楼 · 发布于 2024-10-01 13:32:04

如果您真的想使用ListCreateAPIView。您需要进行一些更改:

网址.py

url(r'^blogpost/(?P<post_id>\w+)$', views.BlogPostList.as_view(),name='blogpost-list'),

视图.py

^{pr2}$

但是我认为Django Rest框架为您的用例提供了更好的基于类的视图,比如RetrieveAPIView。据我所知,似乎你只想得到一个对象,而这个通用视图是针对一个对象列表的。在

相关问题 更多 >