我有以下情况。我的Django项目有以下模型
class Doctor(models.Model):
#some doctor specific fields
我也有像这样的模型
class Category(models.Model):
name = models.CharField(max_length = 15)
color = models.CharField(max_length = 7)
因此每个类别都有一个名称和一个特定的颜色。我被要求做以下事情。每个医生都有他自己的短语,但颜色总是一样的。我不确定这是可能的。是吗?如果我这样做
class Doctor(models.Model):
#some doctor specific fields
category = models.ForeignKey(Category)
然后,每个医生都可以拥有自己的特定类别,但对于同一类别,我们可能会有不同的颜色。这可以在db级别上完成吗?或者我必须以编程方式进行吗?如果以编程方式完成,我的数据库应该在保存时检查,或者在输入时检查类别是否已经存在,以及是否自动选择类别的颜色是否正确?
实施此操作的最佳方法是什么?我认为它需要前端和后端验证一个用于前端输入,一个用于后端检查数据库以查看类别是否已经存在。但我不喜欢这听起来如何。
答案 0 :(得分:1)
如果您有三个型号怎么办?即:
class Doctor(models.Model):
#some doctor specific fields
category = models.ForeignKey(Category)
class Category(models.Model):
name = models.CharField(max_length = 15)
color = models.ForeignKey(CategoryColor)
class CategoryColor(models.Model):
color = models.CharField(max_length = 7)
然后每个Doctor都有一个Category,每个Category都有一个CategoryColor。如果类别已经存在,您将使用现有的类别及其关联的CategoryColor,否则它将创建一个新的类别和相应的CategoryColor。