【问题标题】:Django Class Based view for a profile page个人资料页面的基于 Django 类的视图
【发布时间】:2015-08-12 14:50:53
【问题描述】:
我想使用基于类的视图来构建个人资料页面。是否有任何内置视图来实现这一点。例如:我使用auth_views 进行登录和注册。
Django auth.views 不包含配置文件视图。所以我决定使用 django inbuilts 创建我自己的,用于在配置文件中创建更新和删除任务。我应该使用哪个基于类的视图来实现这一点?
【问题讨论】:
标签:
django
django-class-based-views
django-profiles
【解决方案1】:
个人资料页面只不过是DetailView - 唯一的区别是对象是实际的用户个人资料。如果您想显示当前用户详细信息页面,只需覆盖 get_object 方法并从 request.session 返回用户(如果这与您的项目不同,则为配置文件)。
【解决方案3】:
来自我自己尝试学习 Django 的小实验(刚刚开始)
base.html 中的代码 sn-p:
{% if user.is_authenticated %}
<a href="{% url 'logout' %}">{{user.username}} Logout -- </a>
<a href="{% url 'users:user_detail' user.pk %}">{{user.username}} Profile</a>
{% else %}
<a href=="{% url 'login' %}">Login</a>
{% endif %}
从我的观点.py
class UserDetailView(DetailView):
model = User # this is imported from django.contrib.auth.models
context_object_name = 'user_object'
template_name = 'users / user_detail.html'
来自我的 user_detail.html 页面:(对于上面的代码 sn-p:user 变量由 django.contrib.auth.context_processors.auth 上下文处理器注入)
{% if user == user_object %}
<h4>user and object are the same. Welcome {{ user_object }}</h4>
{% endif %}