Glavni problem povezan s dodavanjem mnogo instanci u povezano polje je taj što može uzrokovati probleme s izvedbom. To je zato što će baza podataka morati pratiti sve instance, a to može dovesti do sporije izvedbe.
%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()
Odnosi više-prema-više
Odnos više-prema-više vrsta je odnosa između dva entiteta gdje svaki entitet može imati višestruke odnose s drugim. Na primjer, osoba može imati mnogo prijatelja, a prijatelj može imati mnogo ljudi s kojima je prijatelj. U Djangu je odnos više-prema-više predstavljen instancom modela koja ima dva polja: jedno za prvi entitet i jedno za drugi entitet.
Kako dodati više objekata u odnos ManyToMany
Za dodavanje više objekata u odnos ManyToMany u Djangu, možete koristiti metodu add() na objektu many_to_many. Na primjer, da biste dodali blog post i autora u blog post many_to_many odnos u Djangu, upotrijebili biste sljedeći kod:
blog.add(BlogPost.objects.create(title='Dodavanje više objekata u odnos ManyToMany', content=content)) author = Author.objects.create(name='John Doe')
Također možete koristiti metodu join() na objektu many_to_many za kombiniranje objekata u jedan skup rezultata:
blog.join(autor)