2016-10-11 10 views
1

私が新しいPreDefinedSetを作成するたびに、私は自分のデータベースに追加したすべての機器をつかむ。Django Many Many Field

質問どのように空白にして、多対多フィールドの内部を編集することができますか?

私の目標は、それがユーザによって予め定義され得る機器のリストであるクラスを作ることである。ここで

は私のモデルです:

class Equipment(models.Model): 

    name = models.CharField(max_length = 50) 

class PreDefinedSet(models.Model): 

    name = models.CharField(max_length = 100) 
    Equipments = models.ManyToManyField(Equipment) 
+0

「それをつかむ すべて..."? – McAbra

答えて

0

私はあなたがやろうとしているものを見ると思います。あなたのモデルはうまく見えます - PreDefinedSetに関連するデータが作成時に追加される理由はありません。

今、あなたは、データを操作したい場合は
class Equipment(models.Model): 
    name = models.CharField(max_length = 50) 

class PreDefinedSet(models.Model): 
    name = models.CharField(max_length = 100) 
    equipments = models.ManyToManyField(Equipment, related_name='sets') 

:どのように約

eq.sets.all() # will return a QuerySet of the sets that tool is in 

より:

eq = Equipment.objects.get(name='something') 
user_set = PreDefinedSet.objects.create(name='first_set') 

user_set.equipments.add(eq) 

user_set.equipments.all() # will return a QuerySet with one Equipment 

はまた、あなたがこのように、クエリを逆にすることができたにrelated_nameおかげで気づきますM2Mフィールドを操作する:https://docs.djangoproject.com/en/dev/topics/db/models/#many-to-many-relationships