Python A';相关内容';Django中带有DetailView的列表

Python A';相关内容';Django中带有DetailView的列表,python,django,django-class-based-views,Python,Django,Django Class Based Views,基于“Article”模型,我试图通过过滤名为“category”的模型字段,在模板中显示“relatedcontent”列表。此“类别”字段与另一个名为“类别”的模型具有多个关系 这看起来是一项非常简单的任务,但我不知道如何实现我的目标。到目前为止,可以显示一个列表,但似乎没有过滤掉任何内容 下面是我的DetailView类,它带有一个“get_context_data()”方法,可以生成一个用于显示列表的模板标记。显然,“F()”类不是解决方案 class ArticleDetail(gen

基于“Article”模型,我试图通过过滤名为“category”的模型字段,在模板中显示“relatedcontent”列表。此“类别”字段与另一个名为“类别”的模型具有多个关系

这看起来是一项非常简单的任务,但我不知道如何实现我的目标。到目前为止,可以显示一个列表,但似乎没有过滤掉任何内容

下面是我的DetailView类,它带有一个“get_context_data()”方法,可以生成一个用于显示列表的模板标记。显然,“F()”类不是解决方案

class ArticleDetail(generic.DetailView):
    model = Article
    template_name = 'article/detail.html'

    def get_context_data(self, **kwargs):
        context = super(ArticleDetail, self).get_context_data(**kwargs)
        context_related = Article.objects.filter(F('category')).distinct()
        context['related'] = context_related

        return context
此外,我还尝试使用“category”和“category__exact=F('category')”等参数进行筛选,但仍然失败

以下是模型(简化后供参考):

不,这根本不是F()的作用

但是你没有解释清楚你想要什么。我想您正在寻找与当前文章相同类别的其他文章。这很简单:

Article.objects.filter(category__in=self.object.categories.all())

非常感谢。这正是我想要的。
Article.objects.filter(category__in=self.object.categories.all())