如何修复 Django 中的自动登录?
How To Fix Auto Login In Django?
如何修复自动登录当我去这个 URL 像这样: 127.0.0.1:8000/profile/1
当我看到如果有人去那个 URL 所以 Django 不用密码和用户名登录他
错误:
如何修复 Django 中的自动登录
详情可以看动图:
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>
感谢任何帮助
谢谢!
将模板中的 {% if not user.is_authenticated %}
替换为 {% if not request.user.is_authenticated %}
。您错过了 请求。
您还可以在 views.py 中的 def 和导入库之前使用 @login_required
从 django.contrib.auth.decorators 导入 login_required
这将有助于阻止未登录用户的 url 视图。
如何修复自动登录当我去这个 URL 像这样: 127.0.0.1:8000/profile/1
当我看到如果有人去那个 URL 所以 Django 不用密码和用户名登录他
错误: 如何修复 Django 中的自动登录
详情可以看动图:
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>
感谢任何帮助
谢谢!
将模板中的 {% if not user.is_authenticated %}
替换为 {% if not request.user.is_authenticated %}
。您错过了 请求。
您还可以在 views.py 中的 def 和导入库之前使用 @login_required 从 django.contrib.auth.decorators 导入 login_required
这将有助于阻止未登录用户的 url 视图。