環(huán)境:創(chuàng)建兩個app,分別為teachers,students,models下有一樣的屬性,eg:性別,生日,名字等
如果在model導(dǎo)入的是AbstractUser,會報?(fields.E304)錯誤,錯誤如下圖所示:

相似案例:django的數(shù)據(jù)庫模型中的域多次引用同一個外鍵(表),該案例下是一個表
代碼review,本案例繼承的是AbstractUser,而不是User。
搜索同樣問題:繼承AbstracUser的304錯誤
文章提到在setting里添加?? "AUTH_USER_MODEL = 'teachers.Teachers'"
但嘗試之后發(fā)現(xiàn)依舊沒有解決問題,重新思考二者關(guān)系,源碼部分截圖:


二者只是在emai字段上有區(qū)別,如果不需要定義email字段就用后者,但使用前者的時候可以將emai默認(rèn)為空。
在使用二者的時候,無需在定義已有的字段。例如username,password,email 等,也可以繼承下來修改一下屬性(max_length等)。實際使用的時候個人還是水平低。在繼承abstracuser,并在setting里添加AUTH_USER_MODEL = 'teachers.Teachers'后,可以使用,但兩個以上的用戶模型可能就不適用?;蛘卟捎昧硗獾囊环N方式定義一個UserProfile(User)將共同屬性放在該類里面。setting 無需在設(shè)置。
我有兩個app, students,和teachers,teachers繼承的abstractuser,然后students繼承的teachers,students只要定義很少的信息即可。但對于有些無用的字段,需要繼承abstraetuser方法,將之重寫,令例如first_name=none,等
發(fā)現(xiàn)一個問題,具體原因沒清楚:teachers(AbstractUsr),students(Teachers),學(xué)生表里沒有例如username、等的屬性,但是admin后臺卻可以添加,且學(xué)生表里面有個teachers_ptr