Opgelost: veel instanties toevoegen aan gerelateerd veld manytoamny django%5D

Het grootste probleem met betrekking tot het toevoegen van veel instanties aan een gerelateerd veld is dat dit prestatieproblemen kan veroorzaken. Dit komt omdat de database alle instanties moet bijhouden, en dit kan leiden tot langzamere prestaties.

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

Veel-op-veel relaties

Een veel-op-veel-relatie is een type relatie tussen twee entiteiten waarbij elke entiteit meerdere relaties met de andere kan hebben. Een persoon kan bijvoorbeeld veel vrienden hebben en een vriend kan veel mensen hebben met wie hij bevriend is. In Django wordt een veel-op-veel-relatie weergegeven door een modelinstantie met twee velden: één voor de eerste entiteit en één voor de tweede entiteit.

Meerdere objecten toevoegen aan de ManyToMany-relatie

Om meerdere objecten toe te voegen aan een ManyToMany-relatie in Django, kunt u de methode add() gebruiken voor het many_to_many-object. Als u bijvoorbeeld een blogbericht en een auteur wilt toevoegen aan de veel_op_veel-relatie van het blogbericht in Django, gebruikt u de volgende code:

blog.add(BlogPost.objects.create(title='Meerdere objecten toevoegen aan een ManyToMany-relatie', content=content)) author = Author.objects.create(name='John Doe')

U kunt ook de methode join() gebruiken voor het object many_to_many om objecten te combineren tot één resultaatset:

blog.join(auteur)

Gerelateerde berichten:

Laat een bericht achter