django项目user模型重写和继承

                    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

        
















  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值