无法从Django arrayField中删除元素

时间:2018-09-24 07:35:23

标签: django django-queryset

我正在尝试从Notes模型中的arrayfield删除元素

obj=notes.objects.get(id=n_id,related_to__contains=[c_id])
obj.related_to.remove(c_id)
obj.save()

与之相关的是arrayfield

related_to=ArrayField(models.IntegerField()) 

n_id是注释的ID,而c_id是联系人的ID。当我尝试执行此操作时,出现错误 ValueError:list.remove(x):x不在列表中。我已经检查过了,c_id在arrayfield中。怎么了?

1 个答案:

答案 0 :(得分:1)

c_id因为找到了对象,所以肯定在related_to字段中。我相信您会收到此错误消息是因为c_id不是int类型,而是string类型。您应该先将其转换为int:

c_id = int(c_id)
obj=notes.objects.get(id=n_id,related_to__contains=[c_id])
....