나는 다음과 같은 모델이 있습니다주석이 달린 쿼리 세트를 업데이트하는 방법은 무엇입니까?
class Work(models.Model):
visible = models.BooleanField(default=False)
class Book(models.Model):
work = models.ForeignKey('Work')
내가 지금처럼 일부 행을 업데이트하는 오전 :
DatabaseError의 : 하위 쿼리가 너무 많이 가지고
는qs=Work.objects.all()
qs.annotate(Count('book')).filter(Q(book__count__gt=1)).update(visible=False)
그러나이 오류가 제공됩니다 열 LINE 1 : ... SET "visible"= false "app_work". "id"IN (선택 ...
내가 제거하면 그는 쿼리 절을 실행하는데 문제가 없으며 예상 한 것을 반환합니다.
이 오류는 주석이있는 쿼리와 업데이트가 발생하는 것처럼 보입니다. 이것을 쓰는 다른 방법이 있습니까?
저는 실제로 보완이 필요하지 않습니다. 쿼리가 올바른 행을 반환하지만 문제는 내가 업데이트 할 수 없다는 것입니다. – jess
오른쪽. 제 요점은 동일한 기본 접근 방식을 사용하여 대량 업데이트가 가능한 주석 처리되지 않은 쿼리 세트를 얻을 수 있다는 것입니다. – acjay
@jess : 방금 내가 의미하는 예를 포함하도록 편집했습니다. 작동하는지 알려주세요. – acjay