如何修复 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>&nbsp; Sign up Free</a>
    </li>    
    <li class="nav-item">

      <a class="nav-link navaour" href="{% url 'login' %}"><i class="fa fa-user"></i>&nbsp; Login</a>
    </li>

  {% else %}
    <li class="nav-item">

      <a class="nav-link navaour" href=""><i class="fa fa-user"></i>&nbsp; Profile</a>
    </li>
    <li class="nav-item">

     <a class="nav-link navaour" href="{% url 'logout' %}"><i class="fa fa-power-off"></i>&nbsp; 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 视图。