django和建模数据库

时间:2014-04-18 17:32:07

标签: django django-models

我有以下情况。我的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级别上完成吗?或者我必须以编程方式进行吗?如果以编程方式完成,我的数据库应该在保存时检查,或者在输入时检查类别是否已经存在,以及是否自动选择类别的颜色是否正确?

实施此操作的最佳方法是什么?我认为它需要前端和后端验证一个用于前端输入,一个用于后端检查数据库以查看类别是否已经存在。但我不喜欢这听起来如何。

1 个答案:

答案 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。