如何解决Django 3:将用户电子邮件设置为唯一的、最小可行的解决方案
我正在编写一个简单的应用程序,我对 Django 用户模型非常满意,只是我希望用户电子邮件是唯一且必须填写的字段。 我已经开发了一个解决方案,但我想知道我是否遗漏了什么。
a) 如果您认为以下解决方案中缺少某些内容,请告诉我
b) 如果您认为您有更好的解决方案,请分享
这是我做的
- 创建自定义用户模型
# customers/models.py
from django.db import models
from django.contrib.auth.models import AbstractUser
class User(AbstractUser):
email = models.EmailField(verbose_name='Email',unique=True,blank=False,null=False)
EMAIL_FIELD = 'email'
REQUIRED_FIELDS = ['email']
-
在 settings.py 中添加了 AUTH_USER_MODEL = 'customers.User'
-
更改了对用户模型的引用:
User = get_user_model()
- 修改了 admin.py 以便能够使用 Django admin 添加用户。
# customers/admin.py
from django.contrib import admin
from django.contrib.auth.admin import UserAdmin
from django.contrib.auth import get_user_model
User = get_user_model()
class CustomUserAdmin(UserAdmin):
list_display = ('username','email','is_staff')
add_fieldsets = (
(None,{
'classes': ('wide',),'fields': ('username','password1','password2'),}),)
admin.site.register(User,CustomUserAdmin)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。