แก้ไขแล้ว: เพิ่มอินสแตนซ์หลายรายการในฟิลด์ที่เกี่ยวข้อง 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(ผู้เขียน)

กระทู้ที่เกี่ยวข้อง:

แสดงความคิดเห็น