我需要通过update
操作恢复boolean
值。
我试过了:
Item.objects.filter(serial__in=license_ids).update(renewable=not F('renewable'))
但它不起作用。我确保字段未设置为null
。
答案 0 :(得分:2)
这里不支持。您必须使用Case When
from django.db.models import Case, Value, When
Item.objects.filter(serial__in=license_ids
).update(renewable=Case(
When(renewable=True, then=Value(False)),
default=Value(True))
)
)
答案 1 :(得分:1)
您也可以这样做:
Item.objects.filter(serial__in=license_ids).update(renewable=Q(renewable=False))
当可再生能源是True
=> Q对象条件将给出False
当可再生能源是False
=> Q对象条件将给出True