小编Lex*_*lov的帖子

Django用户的DetailVew影响经过身份验证的用户

我试图使用DetailView显示有关用户(配置文件页面)的信息。它可以工作,但是当我出于某种原因打开User的DetailView时,Django认为我已通过此用户身份验证。例如,如果我注销,请打开一些用户的DetailView,Django开始认为我是以该用户身份登录的。我可以看到问题,因为base.html显示了当前登录的用户,如果用户未通过身份验证,则会进行更改。任何想法有什么问题吗?谢谢!

views.py

class ProfileView(DetailView):
    model = User
    template_name = 'users/profile.html'
Run Code Online (Sandbox Code Playgroud)

urls.py

urlpatterns = [
    path('profile/<int:pk>/<str:username>', ProfileView.as_view(), name='profile'),
]
Run Code Online (Sandbox Code Playgroud)

profile.html

{% extends 'base.html' %}
{% block content %}
    <article class = 'media content-section'>
    <div class="media">
        <img class="avatar-image rounded-circle" src="{{ user.profile.image.url }}">
        </div>
    <div class = 'media-body'>
        <div class='article-metadata'>
            <h3>??????? {{user.username}}</h3>
        </div>
        <div class="article-content">
            <p>{{user.first_name}}</p>
            <p>{{user.email}}</p>
            <p>{{user.profile.birthdate}}</p>
            <p>{{user.date_joined}}</p>
        </div>
    </div>
    </article>
{% endblock %}
Run Code Online (Sandbox Code Playgroud)

base.html

<div class="navbar-nav">
    {% if user.is_authenticated %}
    <div class="nav-item dropdown">
    <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" …
Run Code Online (Sandbox Code Playgroud)

django detailview

2
推荐指数
1
解决办法
53
查看次数

标签 统计

detailview ×1

django ×1