由於Django將每個模型映射到一個表。我無法在我的代碼中創建軟件包。在哪裏我可以包裝課程的一些部分,使其更加合乎邏輯並增加耦合度。如何在Django模型中創建類
例如
class Employee(models.Model):
#personal information
first_name = models.CharField(max_length=20)
middle_initial = models.CharField(max_length=1)
last_name = models.CharField(max_length=20)
dob = models.DateField()
#job contract information
full_time = models.BooleanField()
hours_per_day = models.PositiveSmallIntegerField()
#.. and more
我所試圖做的是
employee.job.is_full_time
employee.job.get_hours_per_day
# and more
然而,這意味着我必須建立一個新的模式,它使用OneToOneField
員工型號連接。我不想這樣做..加入數據庫是昂貴的。無論如何創造這樣的東西?
class Employee(models.Model):
class PersonalInformation:
first_name = models.CharField(max_length=20)
middle_initial = models.CharField(max_length=1)
last_name = models.CharField(max_length=20)
dob = models.DateField()
class Job:
full_time = models.BooleanField()
hours_per_day = models.PositiveSmallIntegerField()
#.. and more
主要關鍵答案是創建一個包含多個類別,其會在數據庫映射到一個表的典範。
那麼,這種模型方法並不適用於mongodb/nosql,因此您不能像這樣嵌套模型。如果你不想加入,你必須有一張桌子,所有東西都必須在同一個水平 –
@AntoinePelisse至少它應該是一種將多個類映射到一個表的方法。這是任何系統分析和設計的基礎之一。 – Othman