Django将ForeignKey指向现有的关系表

时间:2013-01-15 11:28:04

标签: python django foreign-key-relationship

我是Django的新手,我想实现以下目标:我有两个表之间的关系,比如表B有一个对表A的ManyToMany引用。现在我想要一个名为Options的表,它将选项保存到特定组合A& A之间B.我如何实现这一目标?

谢谢!

Hidde

1 个答案:

答案 0 :(得分:5)

使用ManyToMany字段的through选项,并在关系中添加信息。

例如

class Ingredient(models.Model):
    name = models.TextField()

class Recipe(models.Model):
    name = models.TextField()
    ingredients = models.ManyToManyField(Ingredient, through='RecipePart')

class RecipePart(models.Model)
    recipe = models.ForeignKey(Recipe)
    ingredient = models.ForeignKey(Ingredient)
    amount = models.IntegerField()

# ...
RecipePart(recipe=pizza, ingredient=cheese, amount=9001).save()

如果关系已经存在(并且您已经拥有数据),则必须更新数据库模式(如果您曾经使用自动映射,则创建模型)。 South可以帮助您做到这一点。