如何使用Django模型ForeignKey?

时间:2017-07-26 02:39:22

标签: django django-models django-views

我在表'帖子'中使用了两个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连接我想要的确切键,究竟是什么相关名称?
“帖子”中的用户字段和图标字段都将用户名指向“UserInfo”,但我希望帖子图标指向UserInfo图标,该怎么办?

1 个答案:

答案 0 :(得分:0)

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