programing

Django에서 여러 개체를 ManyToMany 관계에 한 번에 추가하는 방법

cafebook 2023. 4. 19. 00:21
반응형

Django에서 여러 개체를 ManyToMany 관계에 한 번에 추가하는 방법

Django 문서에 기반하여 여러 개체를 동시에 전달하여 여러 도메인 관계에 추가할 수 있습니다.

* TypeError: 캐시할 수 없는 유형: '리스트'

목록에 캐스팅된 장고 쿼리셋을 통과하려고 할 때.Queryset 또는 ValuesList 전달쿼리셋도 실패한 것 같습니다.for 루프를 사용하는 것보다 더 좋은 방법이 있을까요?

용도:object.m2mfield.add(*items)설명서에 기재되어 있는 바와 같이,

add()는 임의의 수의 인수를 받아들입니다.인수의 리스트는 받지 않습니다.

add(obj1, obj2, obj3, ...)

목록을 인수로 확장하려면*

add(*[obj1, obj2, obj3])

부록:

장고가 전화를 하지 않는다.obj.save()각 항목에 대해 사용하지만bulk_create(),대신.

쿼리셋에서 추가하려면 다음과 같이 하십시오.

# Returns a queryset
permissions = Permission.objects.all()

# Add the results to the many to many field (notice the *)

group = MyGroup.objects.get(name='test')

group.permissions.add(*permissions)

시작: 쿼리셋 결과를 ManytoMany 필드에 삽입합니다.

장고 1.9는 다대다 관계에 추가 방법을 추가한다.

문서: https://docs.djangoproject.com/en/dev/ref/models/relations/ #django.db.models.fields.related.RelatedManager.set

set새로운 기능:

>>> new_list = [obj1, obj2, obj3]
>>> e.related_set.set(new_list)

언급URL : https://stackoverflow.com/questions/4959499/how-to-add-multiple-objects-to-manytomany-relationship-at-once-in-django

반응형