【发布时间】:2017-03-17 01:47:00
【问题描述】:
我需要通过update 操作恢复boolean 值。
我试过了:
Item.objects.filter(serial__in=license_ids).update(renewable=not F('renewable'))
但它不起作用。我确保这些字段没有设置为null。
【问题讨论】:
标签: django
我需要通过update 操作恢复boolean 值。
我试过了:
Item.objects.filter(serial__in=license_ids).update(renewable=not F('renewable'))
但它不起作用。我确保这些字段没有设置为null。
【问题讨论】:
标签: django
此处不支持不支持。你必须使用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))
)
)
【讨论】:
Case。谢谢。
你也可以这样做:
Item.objects.filter(serial__in=license_ids).update(renewable=Q(renewable=False))
当可更新为True => Q 对象条件将给出False
当可更新为False => Q 对象条件将给出True
【讨论】: