Вирішено: додати багато екземплярів до пов’язаного поля manytoamny django%5D

Основна проблема, пов’язана з додаванням багатьох екземплярів до пов’язаного поля, полягає в тому, що це може спричинити проблеми з продуктивністю. Це пояснюється тим, що базі даних доведеться відстежувати всі екземпляри, а це може призвести до зниження продуктивності.

%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. Наприклад, щоб додати публікацію блогу та автора до публікації блогу відношення 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(автор)

Схожі повідомлення:

Залишити коментар