Django模板{%block content%}只能包含两个表单字段?

时间:2016-08-04 06:48:58

标签: django python-3.x django-forms jinja2

问题是:我们可以将表单发送到包含2个以上字段的模板中(我确信它应该可行)。请提出建议可能是什么问题:

我创建了包含3个字段的表单:

class Email(forms.Form):
    owner = forms.ChoiceField(choices=['Tyler', 'Aleks'])
    title = forms.CharField(max_length=150, label='Name the stuff')
    file = forms.FilePathField(path=path, label='Enter the path')

之后,在视图中操作它,我将表单对象发送到模板:

def mail_distribution(request):
    if request.method == 'POST':
        form = Email(request.POST)
        if form.is_valid():
            render(request, 'general/email.html', {'form': form})
    else:
        form = Email()
    return render(request, 'general/email.html', {'form': form})

这是模板本身:

{% extends 'general/base.html' %}

{% block content %}
     <form class="form-vertical" action="mail_distrib" role="form" method="post">
            {% csrf_token %}
            <div class="form-group" style="display: inherit">
                <center>
                    {{form.title}}
                </center>
            </div>
            <div class="form-group" style="display: inherit">
                <center>
                    {{form.owner}}
                </center>
            </div>
            <div class="form-group" style="display: inherit">
                <center>
                    {{form.file}}
                </center>
            </div>
          <center><input type="submit" value="OK"></center>
     </form>
{% endblock %}

之后我收到错误:

*模板渲染时出错

在模板E:\ Tyler \ Projects \ Web_dev \ dj_api \ Scripts \ distribution \ general \ templates \ general \ email.html中,第13行出错 要打开太多的值(预期2)

line13 - 13 {{form.owner}} *

1 个答案:

答案 0 :(得分:1)

更改所有者字段中的choices属性

owner = forms.ChoiceField(choices=[('Tyler','Tyler'), ('Aleks', 'Aleks')])