我用django写了一个类似Twitter的应用程序,我有两个模型:
class Tweet(models.Model):
content = models.CharField(max_length=140)
creation_date = models.DateTimeField(auto_now_add=True)
user = models.ForeignKey(User, on_delete=models.CASCADE)
class Replies(models.Model):
reply = models.CharField(max_length=140)
tweet = models.ForeignKey(Tweet, on_delete=models.CASCADE)
user = models.ForeignKey(User, on_delete=models.CASCADE)
def __str__(self):
return self.reply
模板片段:
{% block content %}
{% for t in tweets %}
<table class="table1">
<br>
<tr>
<td>
@{{t.user}}
<br> <br>
{{t.content}}
<br> <br>
{{t.creation_date}}
</td>
#######
#######
</tr>
</table>
{% endfor %}
{% endblock %}
在“####”之间,我想要得到所有对特定推文的回复,我怎么做呢?
提前致谢
像这样的方法应该能奏效:
{% block content %}
{% for t in tweets %}
<table class="table1">
<br>
<tr>
<td>
@{{t.user}}
<br> <br>
{{t.content}}
<br> <br>
{{t.creation_date}}
</td>
{% for reply in t.replies_set.all() %}
{{reply.user}} {{reply.reply}}
{% endfor %}
</tr>
</table>
{% endfor %}
{% endblock %}
这里有一个链接,指向详细解释多对一关系的文档https://docs.djangoproject.com/en/3.0/topics/db/examples/many_to_one/