У меня есть форма, которая должна быть подтверждена из шаблона, которые оба являются следующим:Джанго форма не подтверждена
from django.shortcuts import render
from django.forms import Form
from django import forms
from django.http import HttpResponse
import MyIB.settings
import os
class MainForm(Form):
name = forms.CharField()
subject = forms.CharField()
text = forms.Textarea()
file = forms.FileField()
password = forms.CharField()
def mainpage(request):
if request.method == 'POST':
form = MainForm(request.POST, request.FILES)
if form.is_valid():
handle_uploaded_file(request.FILES['file'])
return HttpResponse('Ok')
else:
return HttpResponse('not ok')
form = MainForm()
return render(request, "main.html", {'form': form})
def handle_uploaded_file(file):
name = file.name
with open(os.path.join("static\img", "{0}".format(name)), 'wb+') as destination:
for chunk in file.chunks():
destination.write(chunk)
И как мой шаблон идет:
{% load staticfiles %}
<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/html">
<head>
<meta charset="UTF-8">
<title>{{ siteTitle }}</title>
<link rel="stylesheet" type="text/css" href="{{ STATIC_URL }}css/main.css">
</head>
<body>
{% include 'header.html' %}
<form method="post">
{% csrf_token %}
<label class="label" for="name">Name</label>
<input id="namebox" type="text" name="name" />
</br>
<label class="label" for="subject">Subject</label>
<input id="subjectbox" type="text" name="subject" />
</br>
<label class="label" for="text">Text</label>
<textarea id="textedit" name="text"></textarea>
</br>
<label class="label" for="file">File</label>
<input type="file" name="file" />
</br>
<label class="label" for="password">Password</label>
<input type="password" id="passwordbox" name="password" />
</br>
<input type="submit" />
</form>
</body>
</html>
Но каждый раз, когда я отправить что-то через форму в моем шаблоне, он не проверен и переключается на «не нормально». Пожалуйста помоги. Благодарю.
Редактировать Как сейчас:
<form enctype="multipart/form-data" method="post">
{% csrf_token %}
<table>
<ul>
{{ form.as_table }}
</ul>
</table>
<input type="submit" value="Submit" />
</form>
Он все еще не работает! Я использовал '{{form.as_table}}', и теперь он отображает форму правильно, но она все еще не проверена. Зачем? – Chubak
Я не могу сказать, почему, не глядя на ваш пересмотренный код. – solarissmoke
Я добавил свой пересмотренный код. Понимаете, он всегда запрашивает данные и дает мне ошибку «это поле обязательно», хотя я заполняю поле. – Chubak