如何访问 SimpleArrayFiled 中的选择 使用 django 表单提交的多项选择


from model.blah import Ghosts

我有一个模型有一个看起来像这样的文件

scary_boos = ArrayField(
choice_char_field(Ghosts.TYPE_SELECTION), blank=True, null=True
)

在管理面板中,我正在尝试添加一个表单以显示具有预先确定选项的字段。

class GhostBoosForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
print(self.fields["mortgage_type"])
self.fields["scary_boos"].widget = CheckboxSelectMultiple(
choices=self.fields["scary_boos"].choices
)
class Meta:
model = GhostBoos
fields = "__all__"

但是choices=self.fields["scary_boos"].choices不起作用,还有其他方法可以访问提交的这些选择吗?

为此,您需要访问self.fields["scary_boos"]base_field属性。ArrayField(看起来只适用于PostgreSQL的东西(基本上将其第一个参数存储在那里,我认为在您的情况下这是一个正常的CharField(?

更多信息: https://docs.djangoproject.com/en/2.2/ref/contrib/postgres/fields/#arrayfield

(我不得不玩弄self.fields一点才能找到base_field,但它似乎可以让您访问所需的内容(。

所以:像self.fields["scary_boos"].base_field.choices[1:]这样的东西应该做你需要的。我们"切"掉第一个结果,因为 Django 似乎("", "-----")插入了空白选项(至少对我来说,Django 2.2.7(。

希望有帮助。

相关内容

  • 没有找到相关文章

最新更新