2010-03-16 41 views
3

我想顯示模板的形式,但我得到一個夢幻般的錯誤:的Django 1.2 - 鉛與模板(WSGIRequest)形式

陷入AttributeError的同時渲染:「WSGIRequest」對象有沒有屬性 '得到'

的錯誤是在這一行:{%爲外地在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> 

非常感謝您的幫助!

回答

6

如果我沒有記錯的話,你會得到的錯誤是因爲你的表單的初始化符的簽名是錯誤的:它的第一個參數是「數據」,在你的情況下它駐留在request.POST中(而不是請求本身),如果你到達的是一個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', ...) 
+0

非常感謝,我的錯! – Tom 2010-03-16 09:23:29

+0

老是發生在我身上,說實話(現在實際上也是這樣):) – shylent 2010-03-16 09:24:45

+1

只是爲了澄清shylent的回答,它是>> form = MyForm(request.POST)<<需要重新檢查的部分。我一個人(錯誤地)在做「form = MyForm(request)」這是錯誤的。 – 2010-10-05 20:29:58