【发布时间】:2011-08-06 04:59:05
【问题描述】:
我对 Django 术语有点困惑。所以我有 3 个模型:Post、UserProfile(User)、Favorite。收藏夹跟踪用户收藏了哪些帖子。
发布--->收藏
最喜欢的型号:
class Favorite(models.Model):
user = models.ForeignKey(User, unique=False)
post = models.ForeignKey(Post, unique=False)
def __unicode__(self):
return self.user.username
UserProfile 模型:
class UserProfile(models.Model) :
user = models.ForeignKey(User, unique=True)
def get_favorites(self):
if self.user:
return self.user.favorite_set.all()
在我的 post_list 视图中,我将所有帖子传递给我的模板,并且在模板中我有一个用于显示所有帖子的 for 循环。
{% for post in post_list %}
<hr/>
<div id=”post_{{ post.id }}”>
{% include 'posts/_post.html' %}
</div>
{% endfor %}
现在,在那个 for 循环中,我想添加一个显示“收藏!”的逻辑。如果登录用户收藏了帖子。我认为常规的 SQL 是这样的:
SELECT favorite.post FROM favorite WHERE favorite.user = user.id
这样我就可以在模板循环中做
{% if post in the.above.SQL.query%}Favorited!{% endif %}
现在由于某种原因,我无法将其翻译成 Django 术语。非常感谢您的帮助!
【问题讨论】:
标签: django django-models django-templates