Löst: lägg till många instanser till relaterat fält manytoamny django%5D

Det största problemet med att lägga till många instanser till ett relaterat fält är att det kan orsaka prestandaproblem. Detta beror på att databasen måste hålla reda på alla instanser, och detta kan leda till långsammare prestanda.

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

Många-till-många relationer

En många-till-många-relation är en typ av relation mellan två enheter där varje entitet kan ha flera relationer med den andra. Till exempel kan en person ha många vänner, och en vän kan ha många människor de är vän med. I Django representeras en många-till-många-relation av en modellinstans som har två fält: ett för den första enheten och ett för den andra enheten.

Hur man lägger till flera objekt till ManyToMany-relationen

För att lägga till flera objekt till en ManyToMany-relation i Django kan du använda metoden add() på many_to_many-objektet. Till exempel, för att lägga till ett blogginlägg och en författare till blogginlägget many_to_many-relationen i Django, skulle du använda följande kod:

blog.add(BlogPost.objects.create(title='Lägga till flera objekt till en ManyToMany Relation', content=content)) author = Author.objects.create(name='John Doe')

Du kan också använda metoden join() på many_to_many-objektet för att kombinera objekt till en enda resultatuppsättning:

blog.join(författare)

Relaterade inlägg:

Lämna en kommentar