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

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


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

最佳答案

ArrayField要求默认可调用:


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


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

def donation_default():
    return [DONATION.CASH]


然后将您的字段设置为:

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

关于python - ArrayField中的列表实例有效吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52947363/

10-10 03:06