繁体   English   中英

如何过滤 Django BooleanFields 并在模板中显示结果

How to filter Django BooleanFields and display the results in a template

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

对 Python/Django 来说是全新的,并且试图弄清楚如何在同一模板的某些部分中只显示标记为True的帖子。

例如。 我有一个博客,用户可以发布帖子,但我希望使用 Django BooleanField标记为science_post的帖子与博客帖子的 rest 分开显示。

这是我的帖子 model 的内容:

class Post(models.Model):
    title = models.CharField(max_length=31)
    content = models.TextField()
    thumbnail = models.ImageField()
    picture_description = models.CharField(max_length=100, default=True)
    displayed_author = models.CharField(max_length=25, default=True)
    shortquote = models.TextField()
    reference_title = models.ManyToManyField(References)
    publish_date = models.DateTimeField(auto_now_add=True)
    last_updated = models.DateTimeField(auto_now=True)
    author = models.ForeignKey(User, on_delete=models.CASCADE)
    slug = models.SlugField()
    science_post = models.BooleanField(default=False)

    def __str__(self):
        return self.title

    def get_absolute_url(self):
        return reverse("detail", kwargs={
            'slug': self.slug
        })

    def get_love_url(self):
        return reverse("love", kwargs={
            'slug': self.slug
        })

    @property
    def comments(self):
        return self.comment_set.all()

    @property
    def get_comment_count(self):
        return self.comment_set.all().count()

    @property
    def get_view_count(self):
        return self.postview_set.all().count()

    @property
    def get_love_count(self):
        return self.love_set.all().count()

我的想法是简单地过滤掉模板中标记为science_post的帖子,使用类似的东西

{% if science_post %}
SHOW SCIENCE POST CONTENT HERE
{% endif %}

...但这没有任何回报。 任何帮助或正确方向的观点都会很棒。 如果需要任何其他信息,请告诉我。 谢谢。

1 个回复

为了实现帖子的两个单独显示,您应该在后端使用两个单独的查询,而不是在前端使用 if 语句来分隔它们。

尝试将两个 QuerySet 传递给您的模板,使用两个单独的查询来过滤不同类型的帖子:

...
science = Post.objects.filter(science_post=True)
non_science = Post.objects.filter(science_post=False)
...

然后在您的模板中分别渲染它们:

...
{% for post in science_post %}
SHOW SCIENCE POST CONTENT HERE
{% endfor %}
...
{% for post in non_science %}
SHOW NON-SCIENCE POST CONTENT HERE
{% endfor %}
...
1 Django过滤并在模板中显示(如果存在对象)

models.py: 我的views.py: 模板: 填写表格后,任务将被保存: StudentTaskForm是一个模型表单。具有模型作为Task 我有3个模型。 待办事项,级别和任务。 每个级别包含许多“待办事项”。 任务基本完成了。 因此,如果 ...

2 如何使用Django获取表单中的多个BooleanFields

我的网站上有一个表格,用于获取有关“集体付款”的报告。 它有3个主要字段:价值,付款日期和付款人。 “谁付费”字段是一个包含所有用户名和一个复选框的表。 目前,我正在遍历所有用户,使用一个复选框将其全名添加到表中。 但是我不知道如何在表单中将这些数据与每个用户名(仅文本)相关联。 ...

2018-03-11 00:41:09 1 203   django
3 过滤Django模板中显示的数据

我有一个显示所有已注册用户的Django应用程序。 但是,我想过滤动态显示的用户。 例如,如果我从下拉列表中选择“男性”,则我希望该应用程序仅显示“男性”。 有人可以指出我正确的方向吗? 我没有包含任何代码,因为这只是一个场景。 谢谢! ...

4 在日期范围内过滤日期,并在Django中将一个模板的数据显示到另一个模板

我通过使用以下“坐姿”模型创建了许多坐姿日期: 座席模板的输出格式如下: 我还设计了另一个名为Circular的模型: 使用圆形模型,我将创建不同的圆形。 假设我将在2016年8月31日至9月30日期间创建1号通知。在这种情况下,当我查看1号通知时,它将仅显示上述日 ...

6 在Django模板中过滤多对一

假设我有以下模型: 和以下视图: 这在我的模板文件中: 在这里,由于模板中的profile.photos.first.photo ,我为每个配置文件获取了一张照片,但是我想要的是为每个配置文件选择一张照片,条件是其类型为“ PR”。 任何帮助,将不胜感激。 ...

7 Django:如何使用Forms.ValidationError并在模板中显示消息

在下面的代码中,我显示了为表单创建自定义clean()代码,并(在必要时)引发适当的验证错误。 我可以在模板中显示{{ form.errors }} ,这是一个字典,并且可以解析模板中的字典以使其显示正确的错误消息,但是我的方法一定是错误的。 所以我的问题是1)我应该在表单中更改Valida ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM