提问者:小点点

在模板中绘制相互关联的模型


我用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 %}

在“####”之间,我想要得到所有对特定推文的回复,我怎么做呢?

提前致谢


共1个答案

匿名用户

像这样的方法应该能奏效:

{% 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/