0
我已經查看了所有關於此的stackoverflow和互聯網,所以我只會顯示我的代碼。Django表單錯誤沒有顯示
views.py
def UserSell(request,username):
theuser=User.objects.get(username=username)
thegigform=GigForm()
#if the user is submitting a form
if request.method=='POST':
#bind form with form inputs and image
gigform=GigForm(request.POST,request.FILES)
if gigform.is_valid():
gigform.title=gigform.cleaned_data['title']
gigform.description=gigform.cleaned_data['description']
gigform.more_info=gigform.cleaned_data['more_info']
gigform.time_for_completion=gigform.cleaned_data['time_for_completion']
gigform.gig_image=gigform.cleaned_data['gig_image']
finalgigform=gigform.save(commit=False)
finalgigform.from_user=theuser
finalgigform.save()
return HttpResponseRedirect('done')
thegigform=GigForm()
context=RequestContext(request)
return render_to_response('sell.html',{'theuser':theuser,'thegigform':thegigform},context_instance=context)
模板
<form action="{% url sell user.username %}" method="post" enctype="multipart/form-data">
{% csrf_token %}
<fieldset>
<legend><h2>Sell A Gig</h2></legend>
{% for f in thegigform %}
<div class="formWrapper">
{{f.errors}}
{{f.label_tag}}: {{f}}
{{f.help_text}}
</div>
{% endfor %}
</fieldset>
<input type="submit" value="Sell Now!" />
此代碼似乎遵循普通的Django形式的協議,請告訴我爲什麼我的Django的模板犯規顯示錯誤。謝謝
這就是我在我的代碼之前,但被告知要改變,所以我把其他回來趕上,如果請求得到。問題沒有解決 –
你看到爲什麼在你的發佈代碼中你永遠不會看到錯誤?如果gigform.is_valid()返回False,那麼你就像request.method!='POST'一樣沿着相同的代碼路徑。也就是說,您正在創建一個新的GigForm對象。要查看呈現的錯誤,您需要在上下文中將'thegigform'設置爲導致gigform.is_valid()返回False的相同對象。 –
所以上下文將gigform?我很抱歉,如果遇到問題,可以告訴我代碼應該是什麼樣子。 thegigform = gigform .... {'thegigform':thegigform}像那樣? –