Форма WTforms не отправляет, но не выдает ошибок проверки
Я пытаюсь загрузить файлы с помощьюflask-uploads
работает и работает в некоторые загвоздки. Я покажу тебе мойflask
Функция просмотра, HTML и, надеюсь, кто-то может указать, что я пропускаю.
В основном, что происходит, когда я отправляю форму, и она неif request.method == 'POST' and form.validate():
проверьте в функции просмотра. Он спрыгивает вниз, чтобы отобразить шаблон. wtforms не выдает мне никаких ошибок в форме, поэтому я задаюсь вопросом, почему он не соответствует заявлению if.
Что я смотрю?
Настройка колб-загрузок:
# Flask-Uploads
photos = UploadSet('photos', IMAGES)
configure_uploads(app, (photos))
Посмотреть:
def backend_uploadphoto():
from Application import photos
from Application.forms.backend import AddPhotoForm
clients = Client.query.all()
events = Event.query.order_by('date').all()
form = AddPhotoForm(request.form, csrf_enabled=True)
if request.method == 'POST' and form.validate():
from uuid import uuid4
uuid = uuid4()
filename = '{0}.jpg'.format(uuid)
photo = Photo(uid=uuid, client=request.form['client'], event=request.form['event'])
photofile = photos.save(request.files.get('photo'), photo.filename)
return redirect(url_for('backend'))
return render_template('backend/addphoto.html', form=form, clients=clients, events=events)
Форма:
class AddPhotoForm(Form):
photo = FileField('Photo')
client = IntegerField('Client:')
event = IntegerField('Event:')
HTML:
<form action="{{url_for('backend_uploadphoto')}}" method="post">
<p>
{{form.client.label}}
<select name="client">
{% for client in clients %}
<option value="{{client.id}}">{{client.fullname}}</option>
{% endfor %}
</select>
{{form.client.errors}}
</p>
<p>
{{form.event.label}}
<select name="event">
{% for event in events %}
<option value="{{event.id}}">{{event.name}}</option>
{% endfor %}
</select>
{{form.event.errors}}
</p>
<p><label for="photo">Photo:</label>{{form.photo}} <input type="submit" value="Upload"> {{form.photo.errors}}</p>
</form>