1

私はかなりDjangoを使い始めたばかりで、次のことを達成したいと考えています.2つのテーブル間に関係があります.テーブルBにはテーブルAへのManyToMany参照があるとします.今、オプションをAとの間の特定の組み合わせに保存するOptionsというテーブルが必要です. B. どうすればこれを達成できますか?

ありがとう!

ヒデ

4

1 に答える 1

5

フィールドのthroughオプションを使用して、リレーションシップ自体に情報を追加します。ManyToMany

例えば

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()

関係がすでに存在する場合(そしてすでにデータがある場合)、データベーススキーマを更新する必要があります(自動マッピングに慣れている場合はモデルを作成します)。はあなたがこれをするのを助けることができます。

于 2013-01-15T11:36:37.603 に答える