models: User与AbstractUser 问题

环境:创建两个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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容