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)