我希望在帖子以for循环呈现时显示该帖子下方每个likers
的{{1}}。以下是模型:
post
然后他们喜欢的帖子应该像这样呈现:
class Post(models.Model):
title = models.CharField(max_length=75, null=True, blank=True)
created = models.DateTimeField(auto_now_add=True)
creator = models.ForeignKey(User, null=True)
topic = models.ForeignKey(Topic)
body = models.TextField(max_length=10000)
published = models.BooleanField(default=True)
class PostLike(models.Model):
post = models.IntegerField(default=0) #post.id
liker = models.IntegerField(default=0) #user.id of the post liker
目前(在部署之前)我在 {% for post in posts %}
<div class="row">
<div>{{ post.created |timesince }}</div>
<div>{{ post.creator }}</div>
<div>{{ post.title }}</div>
<div>{{ post.body }}</div>
<ul>
{% for liker in post.likers %}
<li><a href="/path/to/profile/{{ liker.name}}">{{ liker.name}}</a></li>
{% endfor %}
</ul>
{% endfor %}
:
views.py
我想知道在帖子查询中放置likers的最佳方法是什么,以便它们可以在上面的模板中使用?
答案 0 :(得分:1)
在ForeignKey
模型中使用IntegerFiled
代替PostLike
。哪个会给你你想要的东西。
class PostLike(models.Model):
post = models.ForeignKey(Post) #post.id
liker = models.ForeignKey(User,null=False)
现在,当您访问Post
对象时,可以使用postlike_set
来吸引所有人。
所以在你的模板中你可以使用
{% for liker in post.postlike_set.all %}
<li><a href="/path/to/profile/{{ liker.name}}">{{ liker.name}}</a></li>
{% endfor %}