ArrayField中的列表实例有效吗?

时间:2018-10-23 10:58:34

标签: python django

我有一些带有“ donation_methods”字段的用户帐户。用户可以选择不同的方式来接受捐赠。默认情况下,每个用户数组中的值都应为'cash'

donation_methods = ArrayField(
        models.CharField(
        max_length=15,
        choices=DONATION.CHOICES,
    ),
    default=list({DONATION.CASH}),
)

这是正确的方法吗,因为它是实例而不是可调用的?

1 个答案:

答案 0 :(得分:1)

ArrayField需要可调用的默认

  

如果您将字段设为默认值,请确保该字段是可调用的,例如列表   (默认为空)或返回列表的可调用对象(例如   功能)

然后您可以定义以下功能:

def donation_default():
    return [DONATION.CASH]

然后将您的字段设置为:

donation_methods = ArrayField(
    models.CharField(
    max_length=15,
    choices=DONATION.CHOICES,
    ),
    default=donation_default,
)