从通过传递 pk 动态创建的页面注销用户时出现 ValueError

Posted

技术标签:

【中文标题】从通过传递 pk 动态创建的页面注销用户时出现 ValueError【英文标题】:ValueError while logging out user from the page dynamically created by passing pk 【发布时间】:2021-11-07 06:16:30 【问题描述】:

我有一个页面 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模式的代码以及模板代码:

consult_home.html*

<button  type="button" class="button log_out" onclick="location.href='logout';">LOGOUT</button> 

退出查看功能

def logoutUser(request):                                  
    
    logout(request)
    return redirect('/')

search.html

<a class="judge-ttle" href="% url 'doc' searches.pk %">searches.title  &nbsp <i class="fas fa-external-link-alt"></i></a>

doc.html 的浏览量

class DocDetailView(DetailView):               
    model= Laws
    template_name = 'doc.html'

urls.py

urlpatterns=[
     path('logout', views.logoutUser, name='logout'),
     path('doc/<str:pk>', DocDetailView.as_view(), name='doc' ),
]

如上所述,用户在 doc.html 中时无法注销。如何删除此值错误。

【问题讨论】:

【参考方案1】:

onclick 应该使用绝对路径/logout,而不是logout

&lt;button type="button" class="button log_out" onclick="<strong>location.href='/logout';</strong>"&gt;LOGOUT&lt;/button&gt; 

通常会使用 POST 请求注销,因此使用会发出此类请求的 miniform 是有意义的:

<form method="post" action="% url 'logout' %">
    <button type="submit" class="button log_out">LOGOUT</button>
</form>

【讨论】:

谢谢您,先生,它现在正在工作。我是初学者,这些建议对我有很大帮助

以上是关于从通过传递 pk 动态创建的页面注销用户时出现 ValueError的主要内容,如果未能解决你的问题,请参考以下文章

尝试在 Nuxt 中将数据从组件传递到页面时出现错误消息

使用TestNG运行代码时出现空指针异常

使用 QuickBlox 接收离线消息时出现问题

从 servlet 重定向到 html 时出现 404 错误

mPDF 中动态生成页面的页码

尝试使用 JWT 创建登录时出现“不是函数”错误