django扩展User模型(model),profile

from django.contrib.auth.models import User

# Create your models here.

class Profile(models.Model):
    user = models.OneToOneField(User, related_name=‘profile‘)
    date_of_birth = models.DateTimeField(blank=True, null=True)
    photo = models.ImageField(upload_to=‘user/%Y/%m/%d‘, blank=True)

    def __str__(self):
        return ‘Profile for user {}‘.format(self.user.username)

修改setting.py

AUTH_PROFILE_MODULE = ‘account.Profile‘  # app名.model名

按照下面方式调用

@login_required
def edit(request):
    if request.method == ‘POST‘:
        user_form = UserEditForm(instance=request.user,
                                 data=request.POST)
        profile_form = ProfileEditForm(instance=request.user.profile,
                                       data=request.POST,
                                       files=request.FILES)
        if user_form.is_valid() and profile_form.is_valid():
            user_form.save()
            profile_form.save()
    else:
        user_form = UserEditForm(instance=request.user)
        profile_form = ProfileEditForm(instance=request.user.profile)
    return render(request,
                  ‘account/edit.html‘,
                  {‘user_form‘: user_form,
                   ‘profile_form‘: profile_form})

原文地址:https://www.cnblogs.com/gange111/p/9599228.html

时间: 2024-10-09 12:57:18

django扩展User模型(model),profile的相关文章

ValueError: Related model 'myapp.ExUser' cannot be resolved django扩展User字段

扩展字段目前有两种方法: 扩展字段 新建一张表->然后与原有表创建一对一关系 继承django.contrib.auth.models下的AbstractUser类 ,重写User类 两种方式都是官方文档提到的,,实现方法可以在官网以及搜索引擎搜到各大佬的博客上,我今天只分享一下自己遇到的问题及解决方法 我采用的是第2种, 重写User的方法,但是在迁移数据库的时候,遇到问题, 编写好其它表之后,发现User表中字段需要添加于是在models.py 文件中添加了 ExUser类 from dja

18_django的用户模型和扩展django的用户模型

目录 User 模型 字段: User模型的基本用法 User 模型 User模型是这个框架的核心部分.他的完整的路径是在django.contrib.auth.models.User.以下对这个User模型做一个简单的了解: 字段: 内置的User模型拥有以下的字段: 1. username: 用户名.150个字符以内.可以包含数字和英文字符,以及_/@/+/.和-字符.不能为空,且必须唯一. 2. email: 邮箱. 可以为空. 3. password: 密码.经过哈希过后的密码. 4.

Django学习笔记(三)—— 模型 model

疯狂的暑假学习之 Django学习笔记(三)-- 模型 model 参考:<The Django Book> 第5章 1.setting.py 配置 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.', # 用什么数据库管理系统 'NAME': '', # 数据库名称,如果用sqlite,要写完整路径 'USER': '', # 如果用sqlite,这个不用写 'PASSWORD': '', # 如果用sqlite,这个不用写

Django基础核心技术之Model模型的介绍与设计

Django基础核心技术之Model模型的介绍与设计原创: Yunbo Shi Python Web与Django开发 2018-05-03Django网络应用开发的5项基础核心技术包括模型(Model)的设计,URL的配置,View(视图)的编写,Template(模板)的设计和Form(表单)的使用.今天小编我就拼了老命来用千字长文给你来介绍下第一项Django核心基础知识之Model的设计吧.想持续了解后续Django Web开发技术请订阅我的公众号[Python与Django大咖之路].

27_扩展User模型

扩展django的User模型 注意: 继承自AbstractUser和AbstractBaseUser的,要在settings.py 中指定: AUTH_USER_MODEL='app名称.模型名称' 1. 继承自 AbstractUser from django.db import models from django.core import validators from django.contrib.auth.models import AbstractUser, UserManager

Django 重写用户模型

目录 Django 重写用户模型 修改配置文件,覆盖默认的User模型 引用User模型 指定自定义的用户模型 Django 期望你自定义的 User model 满足一些最低要求: 下面为一些AbstractBaseUser的子类必须定义的关键的字段和方法: 下面为一些AbstractBaseUser的子类可以使用的方法: 为你的User模型自定义一个管理器 扩展Django默认的User 自定义用户与内置身份验证表单 自定义用户和django.contrib.admin 自定义用户和权限 如

.NET MVC4 实训记录之二(扩展WebSecurity模型下的UserProfile表)

使用VS2013创建MVC4项目后,自动生成的代码中默认使用WebSecurity模型创建用户管理,生成以下数据库: 用户信息只有ID和UserName,角色信息也只有两个基础字段.通常情况下这样的数据表不能满足我们的需求,因此对其进行扩展. 首先定义自己的用户信息.角色信息结构. 1 [Table("UserProfile")] 2 public class UserProfile 3 { 4 [Key] 5 [DatabaseGenerated(DatabaseGeneratedO

python Django教程 之 模型(数据库)、自定义Field、数据表更改、QuerySet API

python  Django教程  之 模型(数据库).自定义Field.数据表更改.QuerySet API 一.Django 模型(数据库) Django 模型是与数据库相关的,与数据库相关的代码一般写在 models.py 中,Django 支持 sqlite3, MySQL, PostgreSQL等数据库,只需要在settings.py中配置即可,不用更改models.py中的代码,丰富的API极大的方便了使用. 本节的代码:(Django 1.6, Python 2.7 测试环境) 大

web框架---Django之MTV模型

MTV模型 Model(模型):负责业务对象与数据库的对象(ORM) Template(模版):负责如何把页面展示给用户 View(视图):负责业务逻辑,并在适当的时候调用Model和Template 此外,Django还有一个urls分发器,它的作用是将一个个URL的页面请求分发给不同的view处理,view再调用相应的Model和Template