我在 django 中制作了一個需要一個欄位(imagefield)的表格,但是當我通過選擇一個影像來填寫它時,一旦我填寫它就認為該表格無效并要求再次填寫我不明白為什么,這里是我的代碼如下:
視圖.py:
def success(request):
return HttpResponse('successfully uploaded')
def contact(request, plage_name):
name = plage_name
plage = Spot.objects.get(name__iexact=name)
if request.method == 'POST':
form = ContactUsForm(request.FILES) # ajout d’un nouveau formulaire ici
if form.is_valid():
print("it's valide")
plage.photo = form.cleaned_data['photo']
plage.save()
return redirect('success')
else:
form = ContactUsForm()
return render(request,
'pages/Testform.html',
{'form': form}) # passe ce formulaire au gabarit
表格.py
class ContactUsForm(forms.Form):
photo = forms.ImageField(required=True)
html
<form action="" method="post" novalidate>
{% csrf_token %}
{{ form }}
<input type="submit" value="Envoyer">
</form>
網址.py
urlpatterns = [
path('contact-us/<path:plage_name>', views.contact, name='contact'),
]
uj5u.com熱心網友回復:
在views.py中
if request.method == 'POST':
form = ContactUsForm(request.POST,request.FILES)
在 HTML 中
<form action="" method="post" novalidate enctype="multipart/form-data">
{% csrf_token %}
{{ form }}
<input type="submit" value="Envoyer">
</form>
uj5u.com熱心網友回復:
我認為您的錯誤出在表單 init 的引數上。第一個引數用于 POST 資料,而不是 FILES:
form = ContactUsForm(request.POST, request.FILES)
之后,您必須呼叫 form.save(),這可能比自己進行更新要好...
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/522442.html
標籤:Pythondjango形式django-forms场地
下一篇:Django表單在顯示時拋出錯誤
