2017-07-26 82 views
0

我用了两个ForeignKey的表“帖子”连接表“用户”,一个是用户名,另一个是图标,如:如何使用Django模型的ForeignKey?

user = models.ForeignKey(UserInfo, related_name='user_name') 
icon = models.ForeignKey(UserInfo, related_name='user_icon', null=True) 

在我的意见,我尝试遍历表“信息”:

class AllPosts(View): 
    def get(self, request): 
     all_posts = Posts.objects.all() 
     return render(request, 'community.html', { 
      "all_posts":all_posts, 
      }) 

这是我在我的模板如何遍历:

{% for post in all_posts %} 
<div class="post"> 
    <a href="" class="user_a"> 
    <img class="icon" src="{{ MEDIA_URL }}{{ post.icon }}"> 
    <span class="name_span">{{ post.user }}</span> 
    </a> 
    <span class="time">发表时间:{{ post.add_time }}</span> 
    <span class="clicked">回复:{{ post.comment_num }}</span> 
    <a href=""> 
    <img class="post_img" src="{{ MEDIA_URL }}{{ post.image }}"> 
    <div class="article"> 
    <h3 class="title">{{ post.title }}</h3> 
    <span class="content">&nbsp&nbsp&nbsp&nbsp{{ post.content }}</span> 
    </div> 
    </a> 
</div> 
{% endfor %} 

结果:

<img class="icon" src="/media/None"> 
<span class="name_span">klawens</span> 

因此,post.user显示正确的结果,但图标是一个None,我不知道如何使用ForeignKey来连接我想要的确切键,以及什么是related_name?
'Posts'中的用户字段和图标字段都指向'UserInfo'中的用户名,但是我希望Posts图标指向UserInfo图标,该怎么做?

+0

模板代码和生成的HTML不匹配。请发布实际的代码,而不是假设的情况。另外,请确保您的icon图标字段实际上有任何值。当你设置'null = True'时,它很可能会返回'None'。 – Selcuk

+0

我编辑了它,'Posts'中的用户字段和图标字段都将用户名指向'UserInfo',但我希望Posts图标指向UserInfo图标,该怎么做? – Klawens

+0

你的意思是UserInfo类也有一个图标列?例如,如果您的Model关系像这样'Class Post:icon = ForiegnKey(UserInfo)Class UserInfo:icon = CharField()',您可以简单地执行Post实例post.icon.icon。 – Jayground

回答

0

使用{{ post.icon.icon }}{{ post.user.username }}{{ post.icon }}{{ post.user }}