我想通过for循环在html模板中获取数据。这是我的代码。
{% for entry in topic.entries.all %}
<li>
<a style="line-height:170%", href="{% url 'xx' entry.id %}">{{ entry.text }}</a>
</li>
{% endfor %}
我需要添加一个附加条件来确定Entry Model字段'delete'='1'。我尝试{在topic.entries.all()。value_list(delete ='1')%}中输入条目的%},但id无效。我该如何实现?这是Model.py。
class Topic(models.Model):
text = models.CharField(max_length=200)
date_added = models.DateTimeField(auto_now_add=True)
owner = models.ForeignKey(User, on_delete=models.CASCADE)
delete = models.IntegerField(default=1)
def _str_(self):
return self.text
class Entry(models.Model):
topic = models.ForeignKey(Topic, on_delete=models.CASCADE, related_name="entries")
text = models.TextField()
date_added = models.DateTimeField(auto_now_add=True)
delete = models.IntegerField(default=1)
class Meta:
verbose_name_plural = 'entries'
def _str_(self):
return self.text[:50] + "..."
#on_delete=models.CASCADE,
答案 0 :(得分:2)
您可以在for循环中添加一个if条件。
User own this Post...
1 - my title post
----5 - my comment for post id 1
User own this Post...
2 - my second title post
----15 - my comment for post id 2
或者您可以根据上下文变量中的删除条件获取查询集,然后遍历模板中的查询集(而不是引入主题然后查找与其关联的所有条目)。
{% for entry in topic.entries.all %}
{% if entry.delete == 1 %}
<li>
<a style="line-height:170%", href="{% url 'xx' entry.id %}">{{ entry.text }}</a>
</li>
{% endif %}
{% endfor %}
在模板内编写尽可能少的逻辑永远是一个好习惯。