python - ArrayField 中的列表实例有效吗?
问题描述
我有一些带有“donation_methods”字段的用户帐户。用户可以选择不同的方法来接受捐赠。默认情况下,每个用户都应该在数组中拥有值“现金”
donation_methods = ArrayField(
models.CharField(
max_length=15,
choices=DONATION.CHOICES,
),
default=list({DONATION.CASH}),
)
这是正确的方法吗,因为它是一个实例而不是可调用的?
解决方案
ArrayField需要一个可调用的default:
如果您为该字段提供默认值,请确保它是可调用的,例如列表(对于空默认值)或返回列表的可调用(例如函数)
然后你可以定义以下函数:
def donation_default():
return [DONATION.CASH]
然后将您的字段设置为:
donation_methods = ArrayField(
models.CharField(
max_length=15,
choices=DONATION.CHOICES,
),
default=donation_default,
)
推荐阅读
- flutter - Flutter 中 onRequestPermissionResult() 的替代方法
- xcode - 文件“Info.plist”无法打开,因为没有这样的文件
- vb6 - 更改“参考”对话框宽度?
- javascript - 使用 PUG nodejs 和 socket.io 实时发送消息
- json - 如何从同一个json节点中提取多个(随机)值
- postgresql - Posgtresql pgadmin 如何防止访问模式
- apache-spark - 在 python 与 spark-submit 中运行 PySpark 代码
- java - 代理服务器无法将响应发送回客户端
- gitlab - 保留 Gitlab 合并请求受让人历史
- excel - 让用户仅在条件(VBA)下更改选定的选项按钮