Risolto: aggiungi molte istanze al campo correlato manytoamny django%5D

Il problema principale relativo all'aggiunta di molte istanze a un campo correlato è che può causare problemi di prestazioni. Questo perché il database dovrà tenere traccia di tutte le istanze e ciò può comportare un rallentamento delle prestazioni.

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

Relazioni molti a molti

Una relazione molti-a-molti è un tipo di relazione tra due entità in cui ciascuna entità può avere più relazioni con l'altra. Ad esempio, una persona può avere molti amici e un amico può avere molte persone con cui è amico. In Django, una relazione molti-a-molti è rappresentata da un'istanza del modello con due campi: uno per la prima entità e uno per la seconda entità.

Come aggiungere più oggetti alla relazione ManyToMany

Per aggiungere più oggetti a una relazione ManyToMany in Django, puoi utilizzare il metodo add() sull'oggetto many_to_many. Ad esempio, per aggiungere un post sul blog e un autore alla relazione many_to_many del post sul blog in Django, dovresti usare il seguente codice:

blog.add(BlogPost.objects.create(title='Aggiunta di più oggetti a una relazione ManyToMany', content=content)) author = Author.objects.create(name='John Doe')

Puoi anche utilizzare il metodo join() sull'oggetto many_to_many per combinare gli oggetti in un singolo set di risultati:

blog.join(autore)

Related posts:

Lascia un tuo commento