我有一个Django站点,其Item对象具有布尔属性active.我想做这样的事情来将属性从False切换到True,反之亦然:
def toggle_active(item_id):
item = Item.objects.get(id=item_id)
item.active = !item.active
item.save()
Run Code Online (Sandbox Code Playgroud)
此语法在许多基于C的语言中有效,但在Python中似乎无效.还有其他方法可以在不使用的情况下执行此操作:
if item.active:
item.active = False
else:
item.active = True
item.save()
Run Code Online (Sandbox Code Playgroud)
本机python neg()方法似乎返回整数的否定,而不是布尔值的否定.
谢谢您的帮助.
mik*_*iku 10
另一种(不太简洁,可读性更强)的方法是:
item.active = bool(1 - item.active)
Run Code Online (Sandbox Code Playgroud)
布尔人的否定是not.
def toggle_active(item_id):
item = Item.objects.get(id=item_id)
item.active = not item.active
item.save()
Run Code Online (Sandbox Code Playgroud)
谢谢大家,这是一个闪电般快速的反应!
它很简单:
item.active = not item.active
Run Code Online (Sandbox Code Playgroud)
所以,最后你会得到:
def toggleActive(item_id):
item = Item.objects.get(id=item_id)
item.active = not item.active
item.save()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
69803 次 |
| 最近记录: |