python - django中另一个字段发生变化时如何切换布尔字段?
问题描述
当字段(标记)发生变化时,我正在尝试切换布尔字段(ManyToMany
标记)。我怎样才能做到这一点?
class Tagger(models.Model):
tagged = models.BooleanField(default = False)
appName = models.ForeignKey(AppName,on_delete=models.CASCADE, null=True, blank=True)
tag = models.ManyToManyField(Tag,blank=True)
当“标签”中有输入时,我希望“标签”字段切换为 True,反之亦然。
解决方案
看起来简单的方法是使用property
class Tagger(models.Model):
appName = models.ForeignKey(AppName,on_delete=models.CASCADE, null=True, blank=True)
tag = models.ManyToManyField(Tag, blank=True)
@property
def tagged(self):
return bool(self.tag.all())
要在管理仪表板中显示该字段,只需将其添加到 中list_display
,例如:
class TaggerAdmin(admin.ModelAdmin):
list_display = (..., 'tagged')
推荐阅读
- javascript - 如何添加
- 至
- 带有来自本地存储的数据元素
- 至
- ms-access - 在访问中通过 Dlookup 填充字段数据
- c# - 通过`IAsyncEnumerable`并行Linq?
- webdriver-io - WDIO-Cucumber.js:Before 和 After 标签应该在所有功能文件或场景运行之前和之后只运行一次
- google-bigquery - Big Query 左连接问题
- php - 日期时间修改比较的PHP问题
- java - 更改谷歌地图缩放时更改地图类型
- mysql - Auto_Increment 在提供重复值时增加列号
- microsoft-teams - 我们如何隐藏用户在频道中加入/离开团队?
- angular - 使用 Angular 的 Google 助理交互式画布