Django 1.2-模板中带有表单的Pb(WSGIRequest)

Django 1.2-模板中带有表单的Pb(WSGIRequest),django,Django,我试图在模板上显示表单,但我遇到了一个奇妙的错误: 呈现时捕获AttributeError:“WSGIRequest”对象没有属性“get” 错误在这一行:{%for form.visible_fields%} 我的看法是: def view_discussion(request, discussion_id): discussion = get_object_or_404(Discussion, id=discussion_id) form = BaseMessageForm(reques

我试图在模板上显示表单,但我遇到了一个奇妙的错误:

呈现时捕获AttributeError:“WSGIRequest”对象没有属性“get”

错误在这一行:{%for form.visible_fields%}

我的看法是:

def view_discussion(request, discussion_id):
 discussion = get_object_or_404(Discussion, id=discussion_id)
 form = BaseMessageForm(request)

 return render(request,'ulule/discussions/view_discussion.html', {
  'discussion':discussion,
  'form':form,
 })
我的表格:

class BaseMessageForm(forms.Form):
 message_content = forms.CharField(widget=forms.HiddenInput())
我的模板:

<form action="" method="post">
{% csrf_token %}
    {% for field in form.visible_fields %}
        <div class="fieldWrapper">
            {% if forloop.first %}
                {% for hidden in form.hidden_fields %}
                {{ hidden }}
                {% endfor %}
            {% endif %}

            {{ field.errors }}
            {{ field.label_tag }}: {{ field }}
        </div>
    {% endfor %}
    <p><input type="submit" value="Send message" /></p>
</form>

{%csrf_令牌%}
{%form.visible_fields%}
{%if-forloop.first%}
{%用于隐藏在表单中。隐藏的_字段%}
{{隐藏}}
{%endfor%}
{%endif%}
{{field.errors}}
{{field.label_tag}}:{{{field}
{%endfor%}


非常感谢你的帮助

如果我没记错的话,您所遇到的错误是因为表单初始值设定项的签名错误:它的第一个参数是“data”,在您的情况下,它驻留在request.POST中(而不是请求本身),如果您到达的是

通常,带有表单的视图的外观如下所示:

def my_view(request, ...):
    if request.method == 'POST': # The form has been submitted
        form = MyForm(request.POST)
        if form.is_valid():
            # do whatever you want here, save the form, etc
    else:
        form = MyForm()
    return render_to_response('myform.html', ... )

老实说,这件事一直发生在我身上(实际上现在也发生了):)为了澄清shylent的答案,这就是>>form=MyForm(request.POST)>form=MyForm(request)