Vyriešené: pridajte veľa inštancií do súvisiaceho poľa manytoamny django%5D

Hlavným problémom súvisiacim s pridávaním mnohých inštancií do súvisiaceho poľa je to, že môže spôsobiť problémy s výkonom. Dôvodom je, že databáza bude musieť sledovať všetky inštancie, čo môže viesť k spomaleniu výkonu.

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

Vzťahy veľa k mnohým

Vzťah mnoho k mnohým je typ vzťahu medzi dvoma entitami, kde každá entita môže mať viacero vzťahov s druhou. Osoba môže mať napríklad veľa priateľov a priateľ môže mať veľa ľudí, s ktorými sa priatelí. V Django je vzťah many-to-many reprezentovaný modelovou inštanciou, ktorá má dve polia: jedno pre prvú entitu a jedno pre druhú entitu.

Ako pridať viacero objektov do vzťahu ManyToMany

Ak chcete pridať viacero objektov do vzťahu ManyToMany v Django, môžete použiť metódu add() na objekte many_to_many. Napríklad, ak chcete pridať blogový príspevok a autora do vzťahu many_to_many v Django, použite nasledujúci kód:

blog.add(BlogPost.objects.create(title='Pridanie viacerých objektov do vzťahu ManyToMany', content=content)) autor = Author.objects.create(name='John Doe')

Môžete tiež použiť metódu join() na objekte many_to_many na spojenie objektov do jednej sady výsledkov:

blog.join (autor)

Súvisiace príspevky:

Pridať komentár