Løst: føj mange forekomster til relateret felt manytoamny django%5D

Hovedproblemet i forbindelse med tilføjelse af mange forekomster til et relateret felt er, at det kan forårsage ydeevneproblemer. Dette skyldes, at databasen skal holde styr på alle forekomsterne, og dette kan føre til langsommere ydeevne.

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

Mange-til-mange relationer

En mange-til-mange-relation er en type relation mellem to entiteter, hvor hver enhed kan have flere relationer med den anden. For eksempel kan en person have mange venner, og en ven kan have mange mennesker, de er venner med. I Django er en mange-til-mange-relation repræsenteret af en modelinstans, der har to felter: et for den første entitet og et for den anden entitet.

Sådan tilføjer du flere objekter til ManyToMany-forholdet

For at tilføje flere objekter til et ManyToMany-forhold i Django, kan du bruge add()-metoden på many_to_many-objektet. Hvis du f.eks. vil tilføje et blogindlæg og en forfatter til blogindlægget mange_til_mange-forholdet i Django, skal du bruge følgende kode:

blog.add(BlogPost.objects.create(title='Tilføjelse af flere objekter til et ManyToMany Relationship', content=content)) author = Author.objects.create(name='John Doe')

Du kan også bruge join()-metoden på many_to_many-objektet til at kombinere objekter til et enkelt resultatsæt:

blog.join(forfatter)

Relaterede indlæg:

Efterlad en kommentar