Solvita: aldonu multajn okazojn al rilata kampo manytoamny django%5D

La ĉefa problemo rilate al aldoni multajn okazojn al rilata kampo estas, ke ĝi povas kaŭzi rendimentajn problemojn. Ĉi tio estas ĉar la datumbazo devos konservi trakon de ĉiuj kazoj, kaj ĉi tio povas konduki al pli malrapida agado.

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

Multaj-al-multaj rilatoj

Multaj-al-multaj rilato estas speco de rilato inter du unuoj kie ĉiu unuo povas havi multoblajn rilatojn kun la alia. Ekzemple, homo povas havi multajn amikojn, kaj amiko povas havi multajn homojn kun kiuj ili estas amikoj. En Django, multaj-al-multaj rilato estas reprezentita per modelkazo havanta du kampojn: unu por la unua unuo, kaj unu por la dua unuo.

Kiel aldoni plurajn objektojn al la rilato ManyToMany

Por aldoni plurajn objektojn al rilato ManyToMany en Django, vi povas uzi la metodon add() sur la objekto many_to_many. Ekzemple, por aldoni blogan afiŝon kaj aŭtoron al la bloga afiŝo many_to_many-rilato en Django, vi uzus la jenan kodon:

blog.add(BlogPost.objects.create(title='Aldono de Multobjektoj al Interrilato de ManyToMany', content=enhavo)) author = Author.objects.create(name='John Doe')

Vi ankaŭ povas uzi la metodon join() ĉe la objekto many_to_many por kombini objektojn en ununuran rezultan aron:

blog.join(aŭtoro)

Rilataj afiŝoj:

Lasu komenton