用户模型的扩展小要点

说明:本文基于 macOS 13(M1 芯片)环境编写,若您使用的是 Windows 系统,部分命令可能略有不同,欢迎根据实际情况灵活调整。

在使用Django中我们的网站如果简单,可以直接只用django自带的内置用户模型,做到登录,注册,退出。但是一开始就做好了扩展用户模型或者说增加用户系统功能的打算,就应该在第一时间替换掉Django自带的用户模型。

可能有人觉得django一下子就拉了,变得不好了,但其实上django早就为此做好了准备,使用django自带中的AbstractUser,就可以轻松解决用户功能难扩展的问题。

其实只要没有向数据库中写入数据,用户模型的更改还是很简单的,大不了从头开始就可以了,但是如果数据很多,其他应用的功能又和用户系统关联,可能就麻烦了,最麻烦的我的觉得是我的亲身感受,在引入第三方认证库的同时,自己有创建了一个用户应用,然后自定义用户--很麻烦。

但是你只要了解了AbstractUser就能轻松扩展用户模型,下面是一个例子:
```python
from django.contrib.auth.models import AbstractUser
from django.db import models
from django.utils.translation import gettext_lazy as _

class CustomUser(AbstractUser):
    nickname   = models.CharField(_("昵称"), max_length=50, blank=True)
    phone      = models.CharField(_("手机号"), max_length=20, blank=True)
    birthday   = models.DateField(_("生日"), null=True, blank=True)
    address    = models.CharField(_("地址"), max_length=255, blank=True)
    picture    = models.ImageField(_("头像"), upload_to='images/', blank=True)

    class Meta:
        verbose_name = _("用户")
        verbose_name_plural = _("用户管理")


```

对了记着这一步也很关键:
```python
INSTALLED_APPS = [
    ...
    'accounts',
    ...
]

AUTH_USER_MODEL = 'accounts.CustomUser'
```
ok,以后想要扩展用户模型的时候直接添加字段就可以了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值