对于我的应用程序,应该要求用户的电子邮件字段.对于默认的用户模型,情况并非如此.所以我认为创建自定义用户模型是有意义的,如文档中所述:
如果您正在开始一个新项目,强烈建议您设置自定义用户模型,即使默认的用户模型足够您.此模型的行为与默认用户模型相同,但如果需要,您将来可以自定义它:
from django.contrib.auth.models import AbstractUser
class User(AbstractUser):
email = models.EmailField(_('email address'), blank=False)
Run Code Online (Sandbox Code Playgroud)
但是,我不确定这是否是实现这一目标的正确方法.
原因是这里的Django文档说:
当您想要将一些公共信息放入许多其他模型时,抽象基类非常有用.编写基类并在Meta类中放置abstract = True.然后,此模型不会用于创建任何数据库表.相反,当它用作其他模型的基类时,其字段将添加到子类的字段中.在抽象基类中具有与子项中的字段相同的字段是错误的(并且Django将引发异常).
我现在应该怎么做?
小智 5
在models.py中添加
from django.contrib.auth.models import User
User._meta.get_field('email')._unique = True
User._meta.get_field('email').blank = False
User._meta.get_field('email').null = False
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1958 次 |
| 最近记录: |