Django无法获取模板中相关模型数据的值
我想展示下面每个帖子的喜欢者 以下是模型:Django无法获取模板中相关模型数据的值,django,django-models,django-queryset,Django,Django Models,Django Queryset,我想展示下面每个帖子的喜欢者 以下是模型: 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(To
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)
def likers(self):
return self.postlike_set.all()
class PostLike(models.Model):
post = models.ForeignKey(Post)
liker = models.ForeignKey(User, null=True, related_name="post_liker")
在模板中,我有:
{% for post in posts %}
<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 %}
{%for posts in posts%}
{{post.created | timesince}}
{{post.creator}}
{{post.title}}
{{post.body}}
{post.likers%中liker的百分比为%1}
{%endfor%}
{%endfor%}
但模板中没有显示任何内容
如何修复此问题?您的
likers
方法返回PostLike
对象的查询集。如果您需要喜欢者的用户名,则需要按照liker
外键进入User
模型
您还有liker.name
,除非您的User
模型有name
字段,否则它不会工作。使用类似于liker.username
或liker.first\u name
{% for post_liker in post.likers %}
<li><a href="/path/to/profile/{{ post_liker.liker.username }}">{{ post_liker.liker.username }}</a></li>
{% endfor %}
这样,您就不需要模型中的likers
方法,您的模板将简化为:
{% for liker in post.likers.all %}
<li><a href="/path/to/profile/{{ liker.name }}">{{ liker.username }}</a></li>
{% endfor %}
{post.likers.all%中liker的%
{%endfor%}
{% for liker in post.likers.all %}
<li><a href="/path/to/profile/{{ liker.name }}">{{ liker.username }}</a></li>
{% endfor %}