Megoldva: sok példány hozzáadása a manytoamny django%5D kapcsolódó mezőhöz

A sok példány egy kapcsolódó mezőhöz való hozzáadásával kapcsolatos fő probléma az, hogy teljesítménybeli problémákat okozhat. Ennek az az oka, hogy az adatbázisnak nyomon kell követnie az összes példányt, és ez lassabb teljesítményhez vezethet.

%5B%5D=1&django%5D%5B%5D=2&django%5D%5B%5D=3

I have a model with a many to many relationship:
<code>class MyModel(models.Model):
    related_field = models.ManyToManyField(RelatedModel)
</code>
In the admin interface, I can add multiple instances of <code>RelatedModel</code> to <code>related_field</code>.  How can I do this in code?  The following doesn't work:
<code>mymodel = MyModel()
mymodel.related_field = [1, 2, 3] # doesn't work!  only adds 1 instance of RelatedModel to related_field.  
mymodel.save() # only saves one instance of RelatedModel in related_field!  
</code>


A:

    mymodel = MyModel()     mymodel.save()     mymodel.related_field = [1, 2, 3]     mymodel.save() 

Sok-sok kapcsolat

A sok-többhöz kapcsolat egyfajta kapcsolat két entitás között, ahol mindegyik entitásnak több kapcsolata is lehet a másikkal. Például egy személynek sok barátja lehet, és egy barátnak sok olyan embere lehet, akivel barátkozik. A Django-ban a sok-többhöz kapcsolatot egy modellpéldány reprezentálja, amelynek két mezője van: egy az első entitáshoz és egy a második entitáshoz.

Több objektum hozzáadása a ManyToMany kapcsolathoz

Ha több objektumot szeretne hozzáadni egy ManyToMany kapcsolathoz a Django alkalmazásban, használja az add() metódust a many_to_many objektumon. Például, ha egy blogbejegyzést és egy szerzőt szeretne hozzáadni a sok_sokakhoz kapcsolathoz a Django-ban, akkor a következő kódot kell használnia:

blog.add(BlogPost.objects.create(title='Több objektum hozzáadása ManyToMany kapcsolathoz', content=content)) author = Author.objects.create(name='John Doe')

Használhatja a join() metódust is a many_to_many objektumon, hogy az objektumokat egyetlen eredményhalmazba vonja össze:

blog.join(szerző)

Kapcsolódó hozzászólások:

Írj hozzászólást