美文网首页
models: User与AbstractUser 问题

models: User与AbstractUser 问题

作者: 清水和 | 来源:发表于2018-03-12 15:31 被阅读0次

环境:创建两个app,分别为teachers,students,models下有一样的属性,eg:性别,生日,名字等

如果在model导入的是AbstractUser,会报 (fields.E304)错误,错误如下图所示:

错误显示图

相似案例:django的数据库模型中的域多次引用同一个外键(表),该案例下是一个表


代码review,本案例继承的是AbstractUser,而不是User。

搜索同样问题:继承AbstracUser的304错误


文章提到在setting里添加   "AUTH_USER_MODEL = 'teachers.Teachers'"


但尝试之后发现依旧没有解决问题,重新思考二者关系,源码部分截图:

user asstractuser

二者只是在emai字段上有区别,如果不需要定义email字段就用后者,但使用前者的时候可以将emai默认为空。

在使用二者的时候,无需在定义已有的字段。例如username,password,email 等,也可以继承下来修改一下属性(max_length等)。实际使用的时候个人还是水平低。在继承abstracuser,并在setting里添加AUTH_USER_MODEL = 'teachers.Teachers'后,可以使用,但两个以上的用户模型可能就不适用。或者采用另外的一种方式定义一个UserProfile(User)将共同属性放在该类里面。setting 无需在设置。

我有两个app, students,和teachers,teachers继承的abstractuser,然后students继承的teachers,students只要定义很少的信息即可。但对于有些无用的字段,需要继承abstraetuser方法,将之重写,令例如first_name=none,等

发现一个问题,具体原因没清楚:teachers(AbstractUsr),students(Teachers),学生表里没有例如username、等的属性,但是admin后台却可以添加,且学生表里面有个teachers_ptr

相关文章

网友评论

      本文标题:models: User与AbstractUser 问题

      本文链接:https://www.haomeiwen.com/subject/ubayfftx.html