对于Python/Django来说是全新的,并且遇到了困难,试图弄清楚如何只在同一个模板的某些部分显示标记为True的帖子。
就像。我有一个博客,用户可以发布文章,但是我希望使用Django BooleanField标记为science_post的帖子与其他博客文章分开显示。
,这是我的邮政模型:
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 %}...But这个什么也不返回。任何帮助或一点正确的方向,这将是伟大的。如果需要更多的信息,请告诉我。谢谢。
发布于 2021-01-25 20:31:38
为了实现两个独立的posts显示,您应该在后端使用两个单独的查询,而不是在前端使用if-语句来分隔它们。
尝试将两个QuerySets传递给模板,使用两个单独的查询过滤不同类型的帖子:
...
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 %}
...https://stackoverflow.com/questions/65891942
复制相似问题