user12584812
user12584812

Reputation:

Rendering models in template which are related themselves

I write a twitter-like app in django, I've got two models:

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

And the fragment of template:

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

Between '####' i would like to have all the replies to the specific tweet, how can i do that?

Thanks in advance

Upvotes: 0

Views: 39

Answers (2)

Steffen Andersland
Steffen Andersland

Reputation: 609

something like this should do the trick:

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

Here is a link to the documentation that explains many to one relationships in detail https://docs.djangoproject.com/en/3.0/topics/db/examples/many_to_one/

Upvotes: 1

user12584812
user12584812

Reputation:

@Steffen - it works, however you need to remove '()' at the end of

for reply in t.replies_set.all()

Upvotes: 1

Related Questions