如何修复Django中的自动登录?

如何在Django中修复自动登录?

当某人通过输入诸如http://127.0.0.1:8000/profile/1之类的URL进入某人的个人资料时,例如,当页面加载时,该页面将自动登录到该人的个人资料,例如,管理员使用1个pk=1的个人资料像这样的http://127.0.0.1:8000/profile/1,他将无需密码用户名即可登录

我想要这样一个没有身体的人可以通过链接登录到个人资料,而他只能查看某人的个人资料,而不能登录到某人的个人资料

这是我的 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,})

#register  view


def user_reg(request):
    register = False
    if request.method == 'POST':
        form = user_register_form(request.POST)
        if form.is_valid():
            user = form.save(commit=False)
            user.set_password(user.password)
            user.save()

            register = True

            if register == True:
                return HttpResponseRedirect("/accounts/login")

        else:
            print(form.errors)
    else:
        form = user_register_form()

    context = {'reg':form,}
    return render(request,'signup.html',context)

这是我的 Base.html

  {% if user.is_authenticated %}
  <li class="nav-item">

    <a class="nav-link navaour" href="{% url 'profile' pk=user.pk %}"><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>

  {% else %}
  <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>
  {% 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>
<hr />

<div class="row">
    <div class="col-sm-3 col-md-2 col-5">
        <label style="font-weight:bold;">Join Date</label>
    </div>
    <div class="col-md-8 col-6">
        {{ model.join_date|date:"M d,Y" }}
    </div>
</div>
<hr />


<div class="row">
    <div class="col-sm-3 col-md-2 col-5">
        <label style="font-weight:bold;">Email</label>
    </div>
    <div class="col-md-8 col-6">
        {{ user.email }}
    </div>
</div>

这是我的 Models.py

from django.db import models
from django.contrib.auth.models import User
from django.urls import reverse
from django.utils import timezone

# Create your models here.
class user_register_model(models.Model):
    user = models.OneToOneField(User,on_delete=models.CASCADE)
    join_date = models.DateTimeField(default=timezone.now)

这是我的 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')

]

这是 Gif视频

如何修复Django中的自动登录?

liangongzi 回答:如何修复Django中的自动登录?

我在 base.html

中错过了一个请求

我需要替换此行:

 this.form = new FormGroup({
      ...
      dateGroup:this.formBuilder.group({
      year: new FormControl(""),month: new FormControl(""),day: new FormControl("")
    },{validator:validateDates}) 
  });

    validateDates(c:AbstractControl){
    const year = c.get('year');
    const month = c.get('month');
    const day = c.get('day');
    ....
    }

为此:

{% if not user.is_authenticated %}
本文链接:https://www.f2er.com/3119058.html

大家都在问