django项目user模型重写和继承 1 将静态文件js css及image依次放入static文件夹,注意要按照一定的顺序 2 将html文件依次放进templates文件夹,在tamplates内建立一个base文件夹和一个base.html作为基类 3 对首页面 注册 登录页面进行设计(略,可以根据自己静态页面进行设计) 4 讲注册和登录的路由写入base.html内,如果报TypeError: 'set' object is not reversible 的错误需要修改: urlpatterns = [ # path('admin/', admin.site.urls), path( 'index/', views.index,name='index'), path( 'register/', views.register, name='register'), path( 'login/', views.login, name='login'), ] 5 模型类的继承和重写 ·由于国外邮箱唯一性和国内的手机唯一性的不同 所以要重新写用户手机和邮箱 ·在settings.py文件中添加如下配置: 对AUTH_USER_MODEL = 'auth.User'项重写成为 AUTH_USER_MODEL = '应用名.模型类名' 例如:AUTH_USER_MODEL ='user.Users' AUTH_USER_MODEL 参数的设置以点.来分隔,表示应用名.模型类名。 ·注意:Django建议我们对于AUTH_USER_MODEL参数的设置一定要在第一次数据库迁移之前就设置好, 否则后续使用可能出现未知错误 from django.db import models # Create your models here. from django.contrib.auth.models import AbstractUser from django.contrib.auth.models import UserManager as _UserManager #创建超级用户 class UserManager(_UserManager): def create_superuser(self, username, password,email=None,**extra_fields): return super(UserManager,self).create_superuser(username=username,password=password,email=email,**extra_fields) class Users(AbstractUser): objects = UserManager() REQUIRED_FIELDS = ['mobile'] #重写手机和邮箱 mobile = models.CharField('手机号',max_length=11,unique=True,error_messages={'unique':'此手机已注册'}) email_ac = models.BooleanField(default=False,verbose_name='邮箱状态') class Meta: db_table= 'tb_users' verbose_name = '用户名' verbose_name_plural = verbose_name def __str__(self): return self.username #执行文件迁移 python manage.py makemigrations python manage.py migrate
django项目user模型重写和继承
最新推荐文章于 2024-05-18 00:21:48 发布