Ratkaistu: lisää useita esiintymiä liittyvään kenttään manytoamny django%5D

Suurin ongelma, joka liittyy useiden esiintymien lisäämiseen liittyvään kenttään, on, että se voi aiheuttaa suorituskykyongelmia. Tämä johtuu siitä, että tietokannan on seurattava kaikkia esiintymiä, mikä voi johtaa hitaampaan suorituskykyyn.

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

Monesta moneen -suhteet

Monelta moneen -suhde on kahden entiteetin välinen suhde, jossa kullakin entiteetillä voi olla useita suhteita toisen kanssa. Esimerkiksi henkilöllä voi olla monia ystäviä, ja ystävällä voi olla monia ihmisiä, joiden kanssa he ovat ystäviä. Djangossa useista moneen -suhdetta edustaa malliinstanssi, jossa on kaksi kenttää: yksi ensimmäiselle entiteetille ja yksi toiselle entiteetille.

Kuinka lisätä useita objekteja ManyToMany-suhteeseen

Voit lisätä useita objekteja ManyToMany-suhteeseen Djangossa käyttämällä add()-menetelmää many_to_many-objektissa. Jos esimerkiksi haluat lisätä blogitekstin ja kirjoittajan blogitekstiin monta_to_mony-suhteeseen Djangossa, käytä seuraavaa koodia:

blog.add(BlogPost.objects.create(title='Useiden objektien lisääminen ManyToMany-suhteeseen', content=content)) author = Author.objects.create(name='John Doe')

Voit myös käyttää join()-menetelmää many_to_many-objektissa yhdistääksesi objektit yhdeksi tulosjoukoksi:

blog.join(kirjoittaja)

Related viestiä:

Jätä kommentti