django - 从通过传递 pk 动态创建的页面注销用户时出现 ValueError
问题描述
我有一个页面search.html,它有一个与 pk 关联的链接,单击该链接时会重定向到页面doc.html,该页面输出与该 pk 相关的内容
这个doc.html扩展了一个页面Consult_home.html。此页面包含注销按钮。在扩展这个consult_home.html的所有其他页面中,注销按钮可以正常工作。但在 doc 文件中,我收到以下错误,并且注销链接不起作用:
ValueError at /consultancy/doc/logout
Field 'id' expected a number but got 'logout'.
以下是视图函数和 url 模式的代码以及模板代码:
咨询家.html *
<button type="button" class="button log_out" onclick="location.href='logout';">LOGOUT</button>
注销查看功能
def logoutUser(request):
logout(request)
return redirect('/')
搜索.html
<a class="judge-ttle" href="{% url 'doc' searches.pk %}">{{searches.title}}   <i class="fas fa-external-link-alt"></i></a>
doc.html 的视图
class DocDetailView(DetailView):
model= Laws
template_name = 'doc.html'
网址.py
urlpatterns=[
path('logout', views.logoutUser, name='logout'),
path('doc/<str:pk>', DocDetailView.as_view(), name='doc' ),
]
如上所述,用户在doc.html中时无法注销。如何删除此值错误。
解决方案
onclick
应该使用绝对路径 /logout
,而不是:logout
<button type="button" class="button log_out" onclick="location.href='/logout';">LOGOUT</button>
通常一个人会使用 POST 请求注销,因此使用会发出此类请求的 miniform 是有意义的:
<form method="post" action="{% url 'logout' %}">
<button type="submit" class="button log_out">LOGOUT</button>
</form>
推荐阅读
- javascript - 获取重定向网址而不关注
- python - 基于具有已知最大列和列排序约束的阈值过滤数据帧
- php - 专家如何不使用此代码制作图像水印?
- nginx - Nginx 不会提供我的 JavaScript 或图像
- javascript - SASS 输出样式自动使用缩小文件
- r - 基于年份的滚动窗口和 R 中的列值计数
- php - webserver中使用rest api的行数会影响带宽使用吗?
- node.js - 尝试获取 https://registry.npmjs.com/pacote 时响应超时
- node.js - 在nodejs mysql async/await中运行多个查询
- azure-functions - InvalidSignature:令牌的签名无效 - Azure 函数