吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1507|回复: 5
收起左侧

[Python 转载] Django User模型的扩展

[复制链接]
A913830 发表于 2021-11-19 15:37
AbstractUser 其实就是 User 的父类抽象模型,它提供了默认 User 的全部实现


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


GENDER_CHOICES = (('male','男'),('female','女'),)


class UserProfile(AbstractUser):
    nick_name = models.CharField(max_length=50,verbose_name='昵称',default='')
    birthday = models.DateField(verbose_name='生日',null=True,blank=True)
    gender = models.CharField(verbose_name='性别',choices = GENDER_CHOICES,max_length=6)
    address = models.CharField(max_length=100,verbose_name='地址',default='')
    mobile = models.CharField(max_length=11,unique=True,verbose_name='手机号码')   
    image = models.ImageField(upload_to='head_image/%Y/%m',default='/head_image/default.jpg')


    class Meta:
        verbose_name = "用户信息"
        verbose_name_plural = verbose_name


    def __str__(self):
        if self.nick_name:
            return self.nick_name
        return self.username


让 Django 知道你现在用的是自定义的模型了,所以要在 settings.py 里加上这句:
AUTH_USER_MODEL = 'users.UserProfile' (应用名+自定义的模型)

pip3 install pillow

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

looking4freedom 发表于 2021-11-19 16:33
谢谢分享 最近在写平台 刚好可以用到
Andy6ro 发表于 2021-11-19 17:39
xlinux 发表于 2021-11-19 19:16
 楼主| A913830 发表于 2021-11-19 20:41
Django的User Model
从django 1.5之后, 用户可以自定义User model,查询某一django项目使用的user model:
python manage.py shell
from django.contrib.auth import get_user_model
get_user_model()
<class 'apps.users.models.UserProfile'>



from datetime import datetime


class BaseModel(models.Model):
    add_time = models.DateTimeField(default=datetime.now,verbose_name='添加>时间')
    class Meta:
        abstract = True #这个属性是定义当前的模型类是不是一个抽象类,不在数据库生成对应的表

Please write an abstract of this article 〔 thesis 〕请写一份这本书〔这篇论文〕的摘要  抽象的(与个别情况相对)




from apps.users.models import BaseModel

class CourseComments(BaseModel):
    from django.contrib.auth import get_user_model
    UserProfile = get_user_model()
    user = models.ForeignKey(UserProfile, on_delete=models.CASCADE, verbose_name="用户")


class CourseComments(BaseModel):
    from django.conf import settings            

    user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, verbose_name="用户")
xd223 发表于 2021-11-25 16:27
确实,用了官方自带的可以省好多事,但是又没有自己定义的灵活,各有优缺点吧
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 11:37

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表