Django `查找字段`不';不能在'ListAPIView'上工作`
我正在创建一个reddit克隆 型号.pyDjango `查找字段`不';不能在'ListAPIView'上工作`,django,django-rest-framework,lookup-field,Django,Django Rest Framework,Lookup Field,我正在创建一个reddit克隆 型号.py class Subreddit(models.Model): owner = models.ForeignKey(Profile, on_delete=models.DO_NOTHING, null=True, blank=True, related_name='subreddits') class Post(models.Model): owner = models.ForeignKey(Profile, on_delete=mod
class Subreddit(models.Model):
owner = models.ForeignKey(Profile, on_delete=models.DO_NOTHING, null=True, blank=True, related_name='subreddits')
class Post(models.Model):
owner = models.ForeignKey(Profile, on_delete=models.DO_NOTHING)
title = models.CharField(max_length=300)
subreddit = models.ForeignKey(Subreddit, on_delete=models.CASCADE)
urlpatterns = [
# API Views
# SUBREDDIT VIEWS
path('r/', ListSubreddits.as_view(), name='reddits'),
path('r/<int:r_id>/', DetailSubreddit.as_view(), name='reddits-detail'),
path('r/<int:r_id>/posts/', ListPostsOfReddit.as_view(), name='reddit-posts'),
]
url.py
class Subreddit(models.Model):
owner = models.ForeignKey(Profile, on_delete=models.DO_NOTHING, null=True, blank=True, related_name='subreddits')
class Post(models.Model):
owner = models.ForeignKey(Profile, on_delete=models.DO_NOTHING)
title = models.CharField(max_length=300)
subreddit = models.ForeignKey(Subreddit, on_delete=models.CASCADE)
urlpatterns = [
# API Views
# SUBREDDIT VIEWS
path('r/', ListSubreddits.as_view(), name='reddits'),
path('r/<int:r_id>/', DetailSubreddit.as_view(), name='reddits-detail'),
path('r/<int:r_id>/posts/', ListPostsOfReddit.as_view(), name='reddit-posts'),
]
我对名为“reddit posts”的url有问题。此url尝试获取其id
在url中指定为r\u id
的所有特定子Reddit。这里的问题是我得到的是所有的帖子,而不是特定于该子Reddit的帖子。因此,如果我在id=1的subreddit中有2个帖子,在id=2的subreddit中有3个帖子,如果我转到r/1/posts/
,理论上,我应该只得到2个帖子,但实际上我得到了所有5个帖子。
我已经指定了lookup\u字段
和lookup\u url\u kwarg
,但这似乎不起作用。需要帮助!谢谢 显然,用户会说您需要自己为ListAPIView
编写过滤。
另见
在您的情况下,看起来是这样的:
class ListPostsOfReddit(ListAPIView):
serializer_class = PostSerializer
def get_queryset(self):
return Post.objects.filter(subreddit__id=self.kwargs['r_id'])
据我所知,
lookup\u字段
和lookup\u url\u kwarg
属性仅在详细视图中使用,而不是在列表视图中使用。您没有过滤queryset=Post.objects.all()
,而是获取所有对象