首页 > 解决方案 > 如何在 Django 表中显示用户 ID

问题描述

我正在创建一个具有论坛类型格式的站点,用户可以在其中创建帖子——他们在其中发表声明或提出问题等。然后在帖子下,其他用户可以对该帖子创建评论并进行讨论,或其他情况可能是这样。

根据创建帖子的用户的说法,我遇到的问题是在创建显示所有帖子的页面时。

我将向您展示我在下面的代码:带有标签的第二个链接没有将我链接到该特定用户创建的帖子,但始终显示来自用户 #1(管理员用户)的相同内容。你能告诉我我做错了什么不允许这个工作吗?谢谢。

                {% for post in posts %}
                <tr>
                    <td>{{ post.postTitle }}</td>
                    <td>{{ post.postBody }}</td>
                    <td>{{ post.user }}</td>
                    <td><a href="{% url 'single_post' post.id %}" class="btn btn-info">View Post</a></td>
                    <td><a href="{% url 'user_post' user.id %}" class="btn btn-info">User's Posts</a></td>
                </tr>

                {% endfor %}

帖子页面示例

标签: djangoweb

解决方案


这就是问题

{% url 'user_post' user.id %}

启用 django.contrib.auth.context_processors.authuser后,指的是经过身份验证的用户,在您的情况下听起来像是管理员。这就是它转到管理员用户帖子的原因。

你正在寻找post.user而不是。要修复,请更改您从哪个用户获取 id,如下所示

{% url 'user_post' post.user_id %}

推荐阅读