我有一個模型,其中我需要代表不同的工作崗位對勞動力的應用,例如:如何使我的模型遵循DRY原則
from django.db import models
class PostFirstJobAd(models.Model):
fist_job_ad_title = models.CharField(max_length=225)
first_job_ad_description = models.TextField()
created_at = models.DateTimeField(auto_now=True)
class PostSecondJobAd(models.Model):
second_job_ad_title = models.CharField(max_length=225)
second_job_ad_description = models.TextField()
created_at = models.DateTimeField(auto_now=True)
class PostThirdJobAd(models.Model):
third_job_ad_title = models.CharField(max_length=225)
third_job_ad_description = models.TextField()
created_at = models.DateTimeField(auto_now=True)
即刻就可以看到我重複title
,description
和created_at
,我只是改變字段的名稱,它不是DRY和代碼開始氣味。原因是因爲我想在django admin
裏面單獨註冊每個工作,所以我會在網站管理裏面有明確的情況。
的一種方法,使他們幹是用Abstract base classes
但我有一個問題,因爲從文檔:
這種模式將不會再被用於創建任何數據庫表。 相反,當它用作其他模型的基類時,它的字段 將被添加到子類的那些字段中。
在這種情況下什麼是正確的方法,有人可以幫助我理解這一點。
我一直在質疑,我需要代表六個不同的工作,而我希望他們分開的原因是,因爲我想在管理員內部有明確的情況,我不希望我的申請人申請一個模型,所以對於每一份工作申請,我希望你能理解我 – PetarP
重新思考你的設計。你真的不需要單獨的模型。 –