django遗传伤害了我的大脑

时间:2012-09-02 00:06:01

标签: django django-models django-inheritance

我正在制作一个啤酒网站,我被困住了。我需要一个可以与许多不同成分相关的配方。有没有办法创建一个模型“成分”,并继承了许多不同的模型:“跳”,“谷物”等我想这样做,所以我有我的食谱和成分之间的关​​系,我没有创造100种不同的关系来涵盖各种成分。

这可能吗?

1 个答案:

答案 0 :(得分:1)

虽然在大多数情况下我会亲自建议反对它,因为表继承在Django中是一种痛苦(imho)。

你可以这样做:

class Recipe(models.Model):
    name = models.CharField()

class Ingredient(models.Model):
    name = models.CharField()
    recipes = models.ManyToManyField(Recipe, related_name='%(app_label)s_%(class)s')

class Hop(Ingredient):
    pass

class Grain(Ingredient):
    pass