Django的用戶由於我的應用程序requeriments我需要的用戶類的像一個層次結構:擴展與子類
class CommonUser(models.Model):
user = models.OneToOneField(User,on_delete=models.CASCADE)
photo = models.ImageField(upload_to="profileImages",blank=True,null=True)
#HERE: Common properties for every user
class Meta:
abstract = True
class Installer(CommonUser):
#HERE: Specific properties for Installer Companies
class Administration(CommonUser):
#HERE: Specific properties for Administration
class Client(CommonUser):
#HERE: Specific properties for Clients
那麼,在view.py我需要得到輪廓圖像的用戶。我通過請求獲取用戶,所以我有一個models.User對象,我不知道它屬於它的女巫班。我不是能夠做到:
request.user.commonuser.photo
因爲用戶對象不必須與commonuser但安裝程序/管理/客戶端的任何OnetoOne關係......
任何想法?謝謝!
一種方法可以爲CommonUser創建領域,如is_administration,is_client,is_installer默認值假,並將其設置爲true,當您創建的對象那種類型。 –
你可能想把這些東西想象成配置文件而不是用戶。 –