Django ModelChoiceField未填充以前输入的值

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']

我创建了一个ModelChoiceForm,它动态填充了所有没有FlatPageExtras.child_值的flatpages。为此,我进行了以下设置:

Forms.py:

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=(选择)添加空标签只是默认为空标签,尽管每次选择都会在数据库中更新。