Išspręsta: pridėkite daug atvejų į susijusį lauką manytoamny django%5D

Pagrindinė problema, susijusi su daugelio egzempliorių įtraukimu į susijusį lauką, yra ta, kad tai gali sukelti našumo problemų. Taip yra todėl, kad duomenų bazė turės sekti visus atvejus, o tai gali lemti lėtesnį veikimą.

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

„Daugelis prieš daugelį“ santykiai

Ryšys „daugelis su daugeliu“ yra dviejų objektų santykių tipas, kai kiekvienas subjektas gali turėti kelis ryšius su kitu. Pavyzdžiui, žmogus gali turėti daug draugų, o draugas – daug žmonių, su kuriais draugauja. „Django“ sąryšį „daugelis su daugeliu“ vaizduoja modelio egzempliorius, turintis du laukus: vieną pirmajam objektui ir vieną antrajam objektui.

Kaip pridėti kelis objektus į ManyToMany ryšį

Norėdami pridėti kelis objektus į ManyToMany ryšį Django, objekte many_to_many galite naudoti add() metodą. Pavyzdžiui, norėdami įtraukti tinklaraščio įrašą ir autorių prie tinklaraščio įrašo santykio many_to_many Django, turėtumėte naudoti šį kodą:

blog.add(BlogPost.objects.create(title='Kelių objektų įtraukimas į ManyToMany ryšį', content=content)) author = Author.objects.create(name='John Doe')

Taip pat galite naudoti metodą join() objekte many_to_many, kad sujungtumėte objektus į vieną rezultatų rinkinį:

blog.join(autorius)

Susijusios naujienos:

Palikite komentarą