如何創建兩個User
類型有很多共同的屬性?據我所知,創建兩種User
的最佳做法是創建2 UserProfiles
。我有類型 - Firm
和Person
。所以我決定創建兩個UserProfiles
:多種類型的用戶有很多共同的屬性
class FirmProfile(models.Model):
user = models.OneToOneField(User, related_name='firmprofile')
prefered_times = ...
favourite_food = ...
class PersonProfile(models.Model):
user = models.OneToOneField(User, related_name='personprofile')
prefered_times = ...
favourite_food = ...
現在,我正在尋找一種方法,我就不必寫兩次的屬性。可能嗎?
編輯:我創建了這一點,但我不知道這是否是最好的選擇,因爲每個用戶配置將有兩個配置文件 - 公司和個人
class UserProfile(User):
user = models.OneToOneField(User, related_name='userprofile')
TYPE_OF_USER_CHOICES = (('firm','Firm'),
'person','Person')
type_of_user = models.CharField(max_length=40, choices=TYPE_OF_USER_CHOICES)
class FirmProfile(models.Model):
user = models.OneToOneField(User, related_name='firmprofile')
class PersonProfile(models.Model):
user = models.OneToOneField(User, related_name='personprofile')
檢查用戶類型約與個人或公司現場只有一種模式是什麼?或者在UserProfile中設置所有屬性。那麼做測試就更容易了。如果你有UserProfile,我不認爲你需要有FirmProfile和PersonProfile。 – Gaetan