쿼리 세트의 여러 레코드를 효율적으로 업데이트하려면 어떻게합니까?장고 : 한 번에 두 개 이상의 레코드를 업데이트하려면 어떻게해야합니까?
쿼리 세트를 반복하고 편집하고 save()
을 각각 호출합니까? psycopg2의 executemany
과 동일합니까?
쿼리 세트의 여러 레코드를 효율적으로 업데이트하려면 어떻게합니까?장고 : 한 번에 두 개 이상의 레코드를 업데이트하려면 어떻게해야합니까?
쿼리 세트를 반복하고 편집하고 save()
을 각각 호출합니까? psycopg2의 executemany
과 동일합니까?
각 레코드를 다른 값으로 업데이트해야한다면 각 레코드를 반복해야합니다. 그것들을 모두 같은 값으로 갱신하고 싶다면, queryset의 update 메소드를 사용하면된다.
queryset 업데이트 방법을 사용할 수 있습니다. 다음 문서는 다음과 같습니다
http://docs.djangoproject.com/en/dev/ref/models/querysets/#update
당신이 코드를 보면,이 항목을 통해 루프를 수행합니다. 사실 이것은 장고 관리자가 항목에 대한 "대량"작업을 수행 할 때 사용하는 것입니다.
@lee, 업데이트를 사용할 수 있는지 잘 모르겠습니다. 다른 레코드에는 다른 업데이트 된 값이 있습니다. – goh
고맙지 만 executemany()와 동일합니다 – goh
@goh 100 %라고 말할 수는 없지만 그렇다면 매우 놀랄 것입니다. 각 레코드를 수정 한 후에 save를 호출하기 때문에 백엔드가 일괄 처리해야한다는 사실을 알지 못합니다. 그렇게하는 방법이있을 수 있지만 직접적인 쿼리 세트/모델 API는 귀하의 경우에 그렇게해서는 안됩니다. –
의견을 보내 주셔서 감사합니다. – goh