You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django视图获取登录用户信息及资料完善状态判断咨询

解决方案:在Django模板中判断登录用户的Coach资料是否完善

首先,咱们先确认模型关联逻辑——一个CustomUser对应一份Coach详细资料,通常用OneToOneField来建立关联。假设你的模型是这样定义的(如果你的关联方向不同,只需要调整字段名和related_name即可):

# models.py
from django.contrib.auth.models import AbstractUser
from django.db import models

class CustomUser(AbstractUser):
    # 你的自定义用户字段(如果有的话)
    pass

class Coach(models.Model):
    user = models.OneToOneField(CustomUser, on_delete=models.CASCADE, related_name='coach_profile')
    Adresse = models.CharField(max_length=255, blank=True, null=True)
    # 其他Coach资料字段,比如姓名、联系方式等

接下来,修改你的视图函数,把当前登录用户的Coach实例传递给模板。假设你的视图是基于函数的(适配你提到的def P...结构):

# views.py
from django.shortcuts import render
from django.contrib.auth.decorators import login_required

@login_required  # 确保只有登录用户能访问该页面
def profile_view(request):
    # 获取当前用户的Coach实例,若不存在则自动创建空实例(避免模板报错,可根据业务需求调整)
    coach_profile, created = request.user.coach_profile.get_or_create()
    # 将实例传入模板上下文
    context = {
        'coach_profile': coach_profile
    }
    return render(request, 'your_profile_template.html', context)

最后是模板部分,通过判断Adresse字段是否为空,展示不同内容:

<!-- your_profile_template.html -->
{% if user.is_authenticated %}
    <h2>我的个人资料</h2>
    {% if coach_profile.Adresse %}
        <div class="profile-content">
            <p><strong>地址:</strong> {{ coach_profile.Adresse }}</p>
            <!-- 这里可以添加其他Coach字段的展示 -->
        </div>
    {% else %}
        <div class="warning-box">
            你还未完善个人地址信息,请<a href="{% url 'edit_coach_profile' %}">点击此处补充资料</a>!
        </div>
    {% endif %}
{% else %}
    <p>请先<a href="{% url 'login' %}">登录</a>查看个人资料</p>
{% endif %}

关键细节说明:

  • @login_required装饰器:避免未登录用户访问时出现关联实例不存在的错误,确保只有登录用户能进入该页面。
  • get_or_create()方法:如果当前用户还没有关联的Coach实例,会自动创建一个空实例,这样模板里不会因为coach_profile不存在而抛出异常;如果你的业务要求必须用户手动创建资料,也可以去掉这个方法,改为判断request.user.coach_profile.exists(),不存在则直接提示创建。
  • 模板判断逻辑:{% if coach_profile.Adresse %}会自动识别空字符串或None状态,精准判断地址是否已填写。

内容的提问来源于stack exchange,提问作者Nikita

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 03:34:51