Vyřešeno: přidejte mnoho instancí do souvisejícího pole manytoamny django%5D

Hlavním problémem souvisejícím s přidáváním mnoha instancí do souvisejícího pole je to, že může způsobit problémy s výkonem. Důvodem je, že databáze bude muset sledovat všechny instance, což může vést ke snížení 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() 

Vztahy mnoho k mnoha

Vztah many-to-many je typ vztahu mezi dvěma entitami, kde každá entita může mít více vztahů s druhou. Například člověk může mít mnoho přátel a přítel může mít mnoho lidí, se kterými se přátelí. V Django je vztah many-to-many reprezentován instancí modelu, která má dvě pole: jedno pro první entitu a jedno pro druhou entitu.

Jak přidat více objektů do vztahu ManyToMany

Chcete-li přidat více objektů do vztahu ManyToMany v Django, můžete použít metodu add() na objektu many_to_many. Chcete-li například přidat blogový příspěvek a autora do vztahu many_to_many v Django, použili byste následující kód:

blog.add(BlogPost.objects.create(title='Přidání více objektů do vztahu ManyToMany', content=content)) autor = Author.objects.create(name='John Doe')

Můžete také použít metodu join() na objektu many_to_many ke spojení objektů do jediné sady výsledků:

blog.join (autor)

Související příspěvky:

Zanechat komentář