如果您只有一種類型的用戶並且正在使用Django 1.5+,我會建議您利用新的AbstractUser。 Extending Django's default user
當您要添加的誕生和最喜歡的顏色的日期一個例子:如果你需要更多的靈活性,可以延長AbstractBaseUser代替AbstractUser
#myusers/models.py
from django.contrib.auth.models import AbstractUser
from django.db import models
class MyUser(AbstractUser):
dob = models.DateField()
favorite_color = models.CharField(max_length=32, default='Blue')
,但最基本的情況下,你應該只需要AbstractUser。
另請注意,無論哪種情況,您都需要reference your user model by using settings.AUTH_USER_MODEL。
使用了上面的例子,並假設它是在被稱爲myusers
定義的應用程序:
#settings.py
AUTH_USER_MODEL = 'myusers.MyUser'
你提到建立了一個對一個領域的學生模型,用戶模型的方法仍然有效,但並不那麼幹淨(如果您有多種用戶,仍然存在這種情況)。
我通常不喜歡在回答中引用的書籍,但我發現,Two Scoops of Django's,在用戶模式第16章給了地方的不同選擇比網上的Django的當前版本相應更清晰的解釋文檔。這本書對Django非常有用,是基於1.5編寫的。但是,你必須購買這本書或者找到一個擁有它的人......(僅供參考:我沒有收到任何推薦的資金)。
你也可以看看這個SO提問/回答:https://stackoverflow.com/a/14104748/307293
什麼不乾淨呢? –
它在數據庫中創建一個額外的表。如果你經常引用諸如名字和姓氏之類的東西以及一些需要每次額外加入JOIN的自定義信息。 – Jacinda
Jacinda - 巧合的是我今天早些時候購買了這本書!我還沒有到那裏,但是看那個引用,他們給出了三個很好的選擇:從相關模型,AbstractUser的子類或AbstractBaseClassUser的子類鏈接回來。不幸的是,我正在使用我想要繼承的第三方應用程序,以及有關如何執行此操作的任何想法? – Joker