Основният проблем, свързан с добавянето на много екземпляри към свързано поле, е, че това може да причини проблеми с производителността. Това е така, защото базата данни ще трябва да следи всички екземпляри и това може да доведе до по-бавна производителност.
%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()
Връзки много към много
Връзката много към много е вид връзка между два обекта, където всеки обект може да има множество връзки с другия. Например, човек може да има много приятели, а един приятел може да има много хора, с които е приятел. В Django връзката много към много е представена от екземпляр на модел, който има две полета: едно за първия обект и едно за втория обект.
Как да добавите множество обекти към връзката ManyToMany
За да добавите множество обекти към връзка ManyToMany в Django, можете да използвате метода add() на обекта many_to_many. Например, за да добавите публикация в блог и автор към връзката много_към_много в публикацията в блога в Django, ще използвате следния код:
blog.add(BlogPost.objects.create(title='Добавяне на множество обекти към връзка ManyToMany', content=content)) author = Author.objects.create(name='John Doe')
Можете също да използвате метода join() на обекта many_to_many, за да комбинирате обекти в един резултатен набор:
blog.join(автор)