2010-08-30 58 views
0

最近我升級了我的django服務器。從1.2到新版本。這些表格展現出奇怪的行爲。當一個字段留空時,整個頁面只會刷新,而不是像我記得那樣顯示錯誤。什麼會造成這種情況?我該怎麼辦才能修復它?爲什麼我的表單不能返回字段錯誤?

{%extends "baseAUTH.html" %} 
    {% block title %} 
    {{ title }} 
    {% endblock %} 


    {% block content %} 
{% load adminmedia %} 

<script type="text/javascript"> 
window.__admin_media_prefix__ = "{% filter escapejs %}{% admin_media_prefix %}{% endfilter %}"; 
</script> 


<script type="text/javascript" src="/admin/jsi18n/"></script> 
<script type="text/javascript" src="/media/js/core.js"></script> 
<link rel="stylesheet" type="text/css" href="/media/css/forms.css"/> 
<link rel="stylesheet" type="text/css" href="/media/css/base.css"/> 
<link rel="stylesheet" type="text/css" href="/media/css/global.css"/> 
<link rel="stylesheet" type="text/css" href="/media/css/widgets.css"/> 

{{ form.media }} 


    <h1>{{ title }}</h1> 

    {% if form.errors %} 
     <p style="color: red;"> 
      Please correct the error{{ form.errors|pluralize }} below. 
     </p> 
    {% endif %} 

    <form action="" method="post" enctype="multipart/form-data"> 
    {% csrf_token %} 
     <table valign=TOP> 
      {{ form.as_table }} 
     </table> 
     <input type="submit" value="Submit"> 
    </form> 
    {% endblock %} 
+1

您是否嘗試過檢查並輸出form.non_field_errors? – 2010-08-30 18:17:08

+1

您需要顯示視圖的代碼。 – 2010-08-30 18:24:38

回答

0

我發現了這個問題。我恢復了一些變化,並找到了破壞它的地方。在下面的功能我試圖抽象

def FormToEmail(request, token, title, subject, message, reciever, attachlist): 

    if request.method == 'POST': 
     sender = AddSender(request) 
     reciever.append(sender) 

     form = token(request.POST, request.FILES) 

     if form.is_valid(): 
      mail = EmailMessage(subject, message, sender, reciever) 

      if len(attachlist) > 0: 
       for item in attachlist: 
        if form.cleaned_data[item]: 
         temp = request.FILES[item] 
         mail.attach(temp.name, temp.read(), \ 
          temp.content_type) 

      return SendIt(request, mail) 

這裏

else: 
     form = token() 
    if request.user.is_authenticated(): 
     return render_to_response('FormTemplate.html', \ 
     {'form': form, 'title' : title}, \ 
     context_instance=RequestContext(request)) 
    else: 
     return HttpResponseRedirect('/Webtemplate/accounts/login') 

這裏。到

return RenderFormForAuth(request, token(), title) 

與功能定義爲

def RenderFormForAuth(request, form, title): 
    if request.user.is_authenticated(): 
     return render_to_response('FormTemplate.html', \ 
     {'form': form, 'title' : title}, \ 
     context_instance=RequestContext(request)) 
    else: 
     return HttpResponseRedirect('/Webtemplate/accounts/login') 

打破了一切。 (我可以粘貼整個功能/如果需要它被稱爲,但似乎是浪費空間。)

有沒有人知道爲什麼這不起作用?

+0

你可以顯示處理視圖的函數的完整代碼嗎?目前尚不清楚您是否將POST數據填充到表單中 – Ashok 2010-08-31 05:16:26

相關問題