Python 从Django视图中的特定论坛类别获取线程

Python 从Django视图中的特定论坛类别获取线程,python,django,Python,Django,这是我当前的代码 类主题视图(ListView): 型号=螺纹 模板名称='forum/topic.html' 上下文\对象\名称='threads' 分页单位=5 def get_queryset(自我): topic=get\u object\u或\u 404(topic,id=self.kwargs.get('pk')) 返回Thread.objects.order_by('-date_posted') 它应该只从特定的论坛主题获取线程,但它会获取数据库中的所有线程。我尝试了一些方法来修

这是我当前的代码

类主题视图(ListView):
型号=螺纹
模板名称='forum/topic.html'
上下文\对象\名称='threads'
分页单位=5
def get_queryset(自我):
topic=get\u object\u或\u 404(topic,id=self.kwargs.get('pk'))
返回Thread.objects.order_by('-date_posted')
它应该只从特定的论坛主题获取线程,但它会获取数据库中的所有线程。我尝试了一些方法来修复它,但这些修复方法似乎都不起作用

编辑:模型

课程主题(models.Model):
title=models.CharField(最大长度=100)
slug=models.SlugField(默认值='test')
description=models.TextField()
icon=models.CharField(最大长度=25)
类线程(models.Model):
title=models.CharField(最大长度=60)
content=models.CharField(最大长度=255)
发布日期=models.DateTimeField(默认值=时区.now)
author=models.ForeignKey(用户,on_delete=models.CASCADE)
topic=models.ForeignKey(topic,on_delete=models.CASCADE)
pinted=models.BooleanField(默认值=False)
locked=models.BooleanField(默认值=False)
删失=models.BooleanField(默认值=False)
已删除=models.BooleanField(默认值=False)
post_ip=models.GenericIPAddressField()
def num_回复(自我):
返回最大值(0,self.post\u set.count()-1)
def最后回复(自我):
如果self.post_set.count():
返回self.post_set.order_by('-created')[0]

您需要根据给定主题进行筛选,因此:

class TopicView(ListView):
    model               = Thread
    template_name       = 'forum/topic.html'
    context_object_name = 'threads'
    paginate_by         = 5

    def get_queryset(self):
        return Thread.objects.filter(
            topic_id=self.kwargs['pk']
        ).order_by('-date_posted')

您必须向我们提供线程和主题模型,以充分回答您的问题-我们无法猜测您的实现relation@quqa123编辑并添加了帖子。谢谢!这似乎有效,但如果论坛主题不存在,现在不会返回错误404。@dripdrip:allow\u empty是第二部分。
class TopicView(ListView):
    model               = Thread
    template_name       = 'forum/topic.html'
    context_object_name = 'threads'
    paginate_by         = 5
    allow_empty         = True  # 404 if empty

    def get_queryset(self):
        return Thread.objects.filter(
            topic_id=self.kwargs['pk']
        ).order_by('-date_posted')