Django Model用filter设置@property并在temp上显示

2024-04-26 21:23:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我有案件,需要计数和显示用户,没有一个博客。你知道吗

我的views.py

class Blog(models.Model):
    desc = models.TextField(blank=True, null=True)
    user = models.ForeignKey(Employee, null=True, on_delete=models.CASCADE, related_name='blogs')

    @property
    def DOESN_HAVE_BLOG(self):
        blog = Self.Blog.all().values_list('user', flat=True)
        value = Self.User.exclude(id__in=blog)
        return value

这里mytemplate.html

{{ DOESN_HAVE_BLOG.count }}

但它不起作用


Tags: 用户selftruevaluemodelshaveblognull
1条回答
网友
1楼 · 发布于 2024-04-26 21:23:13

这不是作为模型属性要做的事情。一个属性与Blog的一个实际实例相关,但是您要查找的员工根本没有实例。你知道吗

相反,您应该在视图中单独进行查询—在get_context_data中是一个很好的地方。你知道吗

class MyView(ListView):
    ...
    def get_context_data(self, *args, **kwargs):
        data = super().get_context_data(*args, **kwargs)
        data['DOESN_HAVE_BLOG'] = Employee.objects.filter(blog=None)
        return data

相关问题 更多 >