如何修复 Django 中的自动登录?
Posted
技术标签:
【中文标题】如何修复 Django 中的自动登录?【英文标题】:How To Fix Auto Login In Django? 【发布时间】:2020-03-08 02:48:38 【问题描述】:当我像这样访问此 URL 时如何修复自动登录:127.0.0.1:8000/profile/1
当我看到如果有人访问该 URL 时,Django 无需密码和用户名即可登录他
错误: 如何修复 Django 中的自动登录
您可以查看 Gif 了解更多详情:
Views.py
def profile_detail(request,pk):
user = get_object_or_404(User, pk=pk)
model = user_register_model()
return render(request,'profile_detail_view.html','user':user,'model':model,)
urls.py
from . import views
from django.urls import path
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
path('', views.index,name='index'),
path('accounts/signup/', views.user_reg,name='register'),
path('profile/<int:pk>',views.profile_detail,name='profile'),
]
这是我的 Base.html
<ul class="navbar-nav ml-auto">
% if not user.is_authenticated %
<li class="nav-item">
<a class="nav-link navaour" href="% url 'register' %"><i class="fa fa-check-square-o"></i> Sign up Free</a>
</li>
<li class="nav-item">
<a class="nav-link navaour" href="% url 'login' %"><i class="fa fa-user"></i> Login</a>
</li>
% else %
<li class="nav-item">
<a class="nav-link navaour" href=""><i class="fa fa-user"></i> Profile</a>
</li>
<li class="nav-item">
<a class="nav-link navaour" href="% url 'logout' %"><i class="fa fa-power-off"></i> Logout</a>
</li>
% endif %
这是我的profile_detail_view.html
<div class="row">
<div class="col-sm-3 col-md-2 col-5">
<label style="font-weight:bold;">Full Name</label>
</div>
<div class="col-md-8 col-6">
user.username
</div>
</div>
感谢任何帮助
谢谢!
【问题讨论】:
我认为超级用户已登录。 @sandeep 不,我刷新并注销,然后再试一次,我再次收到此错误 @sandeep 如果我再次回到主页,注销按钮就会消失 使用“% if not request.user.is_authenticated %”。你错过了请求 @sandeep 谢谢,请给我答案,以便我接受并投票给你! 【参考方案1】:在您的模板中将% if not user.is_authenticated %
替换为% if not request.user.is_authenticated %
。您错过了请求。
【讨论】:
【参考方案2】:你也可以在views.py和导入库中的def之前使用@login_required 从 django.contrib.auth.decorators 导入 login_required
这将有助于阻止未登录用户查看 url。
【讨论】:
以上是关于如何修复 Django 中的自动登录?的主要内容,如果未能解决你的问题,请参考以下文章
使用 Django rest_framework_jwt,如何允许使用准时使用代码自动登录?
如何修复在 Django Rest Framework 中使用 REST API 登录时出现的 CSRF 错误?