gpt4 book ai didi

django - 在 Django 中使用更新方法切换 bool 字段的值

转载 作者:行者123 更新时间:2023-12-05 01:21:46 24 4
gpt4 key购买 nike

我有一个模型实例,上面有一个 bool 字段。我想要实现的是将值从 True 切换为 False ,反之亦然。

当然,我可以写:

inst = Model.objects.get(id=1)
inst.boolean_field = not inst.boolean_field
inst.save()

但是有 2 个查询:一个用于获取,另一个用于更新。

我只想切换值,但以下似乎不起作用:
Model.objects.filter(id=1).update(boolean_field=not F("boolean_field"))

我很确定我做错了什么,或者这是不可能的。

最佳答案

不幸的是,F() object 的否定django 尚不支持。

当你这样做 not F('boolean_field')它被评估为 True ,所以更新操作总是保存True .例如

>>> F('boolean_field')
<django.db.models.expressions.F object at 0x36b7d50>
>>> not F('boolean_field')
True

在 django 17186 - Inverted F expression (negation) 上引用这个错误

关于django - 在 Django 中使用更新方法切换 bool 字段的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11820590/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com