Atrisināts: pievienojiet daudz gadījumu saistītajam laukam manytoamny django%5D

Galvenā problēma, kas saistīta ar daudzu gadījumu pievienošanu saistītajam laukam, ir tā, ka tas var izraisīt veiktspējas problēmas. Tas ir tāpēc, ka datubāzei būs jāseko līdzi visiem gadījumiem, un tas var izraisīt lēnāku veiktspēju.

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

Attiecības daudzi pret daudziem

Attiecības daudzi pret daudziem ir attiecību veids starp divām entītijām, kurās katrai entītijai var būt vairākas attiecības ar otru. Piemēram, cilvēkam var būt daudz draugu, un draugam var būt daudz cilvēku, ar kuriem viņi draudzējas. Programmā Django attiecības daudzi pret daudziem attēlo modeļa instancē ar diviem laukiem: viens pirmajai entītijai un otrs otrajai entītijai.

Kā pievienot vairākus objektus attiecībām ManyToMany

Lai programmā Django relācijai ManyToMany pievienotu vairākus objektus, objektā many_to_many varat izmantot metodi add(). Piemēram, lai programmā Django pievienotu emuāra ziņu un autoru emuāra ziņojuma daudz_to_many attiecībām, jāizmanto šāds kods:

blog.add(BlogPost.objects.create(title='Vairāku objektu pievienošana relācijai ManyToMany', content=content)) author = Author.objects.create(name='John Doe')

Varat arī izmantot join() metodi objektā many_to_many, lai apvienotu objektus vienā rezultātu kopā:

blog.join(autors)

Related posts:

Leave a Comment