我有一个ArrayField来存储Schema中给定菜品对象的颜色,菜品也有一个类别。
class Dish(models.Model):
colors = ArrayField(models.CharField(max_length=16))
category = models.CharField(max_length=32)
假设我有15个菜品对象,其中13个属于 "厨具 "类别,其余2个属于 "装饰品"。
现在我想在一个单一的更新查询方法中为一个给定类别的现有颜色列表添加一个颜色(这必须将我的新颜色添加到所有匹配的菜肴的数组字段中,在我的例子中是13个项目)。
以下是我尝试执行这一操作的方法,但最终出现了错误
Dish.objects.filter(category="Cookware").update(colors=F("colors")+"red")
Dish.objects.filter(category="Cookware").update(colors=F("colors")+["red"])
以下是我在尝试使用上述两个查询时遇到的错误信息
【替换代码3
下面这句话显然不适用,因为应用 will return None
Dish.objects.filter(category="Cookware").update(colors=F("colors").append("red"))
PS。使用Django(3.2), Django ORM, PostgresArrayField from django.contrib.postgres.fields import ArrayField
提前感谢您花时间帮助我解决这个问题。