【发布时间】:2020-03-05 07:45:56
【问题描述】:
当我在登录后尝试渲染模板时,我得到了
django.urls.exceptions.NoReverseMatch:“更新”的反向 找不到关键字参数'{'pk':''}'。尝试了 1 种模式: ['users/(?P[0-9]+)/update/$']
我在 urls.py 中的一行:
app_name="users"
...
path("users/<int:pk>/update/", view=user_update_view, name="update"),
模板中的行:
<a href="{% url 'users:update' pk=request.user.pk %}">Update user</a>
我看到 request.user.pk 没有提供价值,但我不知道为什么。
【问题讨论】:
-
您的
request.user似乎没有pk。例如因为它是一个AnonymousUser(如果用户没有登录)。 -
我明白了。但问题是,我登录了。当我通过表单登录时,身份验证工作,因为我也登录到 django 管理站点。
-
尝试删除
request,改用pk=user.pk -
@Yellowduck 没用