首页 > 解决方案 > 使用 postgres 在 Django 1.10.6 中添加到 ArrayField

问题描述

我正在尝试在 PostgreSQL 中创建一个文件名列表并即时更新该列表。

我的模型(包):

completed_uploads=ArrayField(models.TextField(blank=True), null=True, default=list)

创建列表:

Package.create(...,
completed_uploads = [])

我的更新代码:

packageInstance = Package.objects.get(id=packageId)
completed_uploads = packageInstance.completed_uploads.append(request.data['filepath'])
Package.objects.filter(id=packageId).update(node = request.data['node'], completed_uploads=completed_uploads, prefix=request.data['prefix'] )

编辑 我将上面的内容更改为 list 而不是 list() ---现在我收到错误:

'NoneType' object has no attribute 'append'第二次调用该函数。当我检查我的数据库时,“completed_uploads”字段为空

标签: djangopostgresqldjango-models

解决方案


只需更改为:

packageInstance = Package.objects.get(id=packageId)
packageInstance.completed_uploads.append(request.data['filepath'])
Package.objects.filter(id=packageId).update(node = request.data['node'], completed_uploads=packageInstance.completed_uploads, prefix=request.data['prefix'] )

推荐阅读