Django ModelChoiceField未填充以前输入的值
我创建了一个ModelChoiceForm,它动态填充了所有没有FlatPageExtras.child_值的flatpages。为此,我进行了以下设置: Forms.py:Django ModelChoiceField未填充以前输入的值,django,django-forms,django-templates,django-views,Django,Django Forms,Django Templates,Django Views,我创建了一个ModelChoiceForm,它动态填充了所有没有FlatPageExtras.child_值的flatpages。为此,我进行了以下设置: Forms.py: class FlatPageExtrasForm(ModelForm): class Meta: model = FlatPageExtras fields = ['head_content', 'endbody_content', 'new_page', 'child_of']
class FlatPageExtrasForm(ModelForm):
class Meta:
model = FlatPageExtras
fields = ['head_content', 'endbody_content', 'new_page', 'child_of']
def __init__(self, *args, **kwargs):
super(FlatPageExtrasForm, self).__init__(*args, **kwargs)
self.fields['child_of'] = forms.ModelChoiceField(queryset = FlatPage.objects.filter(sites = Site.objects.get_current()).exclude(flatpageextras__child_of__isnull=False),widget = forms.Select, required = False)
views.py:
def edit(request, flatpage_id):
site = Site.objects.get_current()
...
if request.method == "POST":
if request.POST.has_key("update"):
return update(request, page)
...
else:
flatpageextras_obj, result = FlatPageExtras.objects.get_or_create(flatpage=page)
form = FlatPageForm(instance=page)
form_flatpageextras = FlatPageExtrasForm(instance=flatpageextras_obj)
模板:
{{ form_flatpageextras.child_of }}<label for="id_child_of">Page on your site you would like this to appear under. </label></p>
{% if form_flatpageextras.child_of.errors %}
{{ form_flatpageextras.child_of.errors }}
{% endif %}
<p class="help-text">If a page is selected, that will be the parent site for this one. Leave blank if you would like no associations</p>
</div>
{{form_flatpageextras.child_of}}页面,您希望此页面显示在下面
{%if form_flatpageextras.child_of.errors%}
{{form_flatpageextras.child_of.errors}}
{%endif%}
如果选择了某个页面,则该页面将成为此页面的父站点。如果不希望关联,请留空
这一切都有效…几乎!当我转到提供的模板时,下拉列表就在那里,正确地显示了可用的flatpages,但它最初总是显示为空白,即使字段正确地保存到所选页面的任何位置。如何让下拉列表正确显示当前选择?也许您可以像这样定义空标签。字段['child\u of'].[empty\u label=(选择)添加空标签只是默认为空标签,尽管每次选择都会在数据库中更新。