【发布时间】:2017-03-18 18:03:12
【问题描述】:
我有一个模型,我需要在其中代表一个劳工申请的不同工作,例如:
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,但我有一个问题,因为来自文档:
此模型将不会用于创建任何数据库表。 相反,当它用作其他模型的基类时,它的字段 将被添加到子类中。
在这种情况下正确的方法是什么,有人可以帮助我理解这一点。
【问题讨论】:
标签: python django python-3.x django-models django-rest-framework