【发布时间】:2012-03-18 07:43:50
【问题描述】:
如何让 MultipleChoiceField() 正确加载初始值?
我有一个带有 CharField 的 Django 模型,我在 admin 中将其呈现为 MultipleChoiceField(),因为我想将其值限制为一个或多个特定选择。
我的代码如下所示:
class MyModelInlineForm(ModelForm):
my_text_field = forms.MultipleChoiceField(required=False)
def __init__(self, *args, **kwargs):
super(MyModelInlineForm, self).__init__(*args, **kwargs)
self.fields['my_text_field'].choices = get_choices(self.instance)
if self.instance:
self.fields['my_text_field'].initial = self.instance.my_text_field
class MyModelInline(admin.TabularInline):
model = MyModel
form = MyModelInlineForm
extra = 0
似乎渲染得很好,但是当我选择值并保存时,新表单加载时没有选择任何值。我已确认该值已正确保存在数据库中,但表单没有加载它,我不知道为什么。
基于一些similarquestions,我尝试显式设置模型保存字段的initial值,但这似乎没有效果。
我做错了什么?
【问题讨论】:
标签: python django django-models django-admin