Django `查找字段`不';不能在'ListAPIView'上工作`

Django `查找字段`不';不能在'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

我正在创建一个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=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()
,而是获取所有对象