我正在尝试在我的 Django 模板上输出过滤列表



例如,我在 models.py:

class Development(models.Model):
    id = models.AutoField(primary_key=True)
    client = models.ForeignKey(InsName, on_delete=models.SET_NULL, null=True, blank=True)
    platform = models.ManyToManyField(Platform)
    user = models.ForeignKey(User, on_delete=models.CASCADE)

和 views.py 中(将相应的 URL 添加到 urls.py):

class DevelopmentFilterView(generic.ListView):
    model = Development

如何告诉我的模板只输出某个客户端的数据库条目列表?

您需要

在视图类中定义一个返回开发模型的 QuerySet 的 get_queryset 函数。这样的事情应该有效:

def get_queryset(self):
    return Development.objects.filter(client__id=1)

您必须使用 ListView 类中get_queryset的方法,如下所示:

class DevelopmentFilterView(generic.ListView):
    model = Development
    queryset = Development.objects.all()
    def get_queryset(self):
       qs = super().get_queryset()
       qs = qs.filter(client=client)
       return qs

最新更新