Файл всегда пуст после отправки FileField - PullRequest
0 голосов
/ 24 апреля 2019

У меня есть форма, где мне нужно собрать некоторые текстовые данные и файл. После отправки textFields в порядке, но FileField кажется пустым.

Валидатор FileRequired утверждает, что поле пустоеи если я удаляю его, это действительно NoneType.

Класс формы:

from wtforms import Form, StringField,validators,SubmitField,DateField
from wtforms.fields.html5 import DateField
from flask_wtf.file import FileField, FileRequired,FileAllowed
from flask_wtf import FlaskForm
from flask import flash
import baseDatos

class  AnadirForm(FlaskForm):
    id=StringField('id')
    nombre=StringField('nombre',[validators.InputRequired()])
    volumen=StringField('volumen',[validators.InputRequired()])
    fecha= DateField('fecha',[validators.InputRequired()])
    file = FileField('Introduce Gcode',validators=[FileRequired()])
    submit = SubmitField('Post')

Класс визуализации:

@app.route("/",methods=['GET', 'POST'])
def main():
    primeraForm=AnadirForm(request.form)


    if(primeraForm.validate_on_submit()):
        print(primeraForm.file.data)

HTML:

<form method="POST" action="/" enctype="multipart/form-data">
            <fieldset class="form-group">
            <div class="hueco col-xs-7">
                {{form.hidden_tag()}}
                {{form.id(class="form-control",placeholder="Id")}}
            </div>
            <div class="hueco col-xs-7">
                {{form.hidden_tag()}}
                {{form.nombre(class="form-control",placeholder="Nombre")}}
            </div>

            <div class="hueco col-xs-7">
                {{form.hidden_tag()}}
                {{form.volumen(class="form-control",placeholder="Volumen")}}
            </div>
            <div class="hueco col-xs-7">
                {{form.hidden_tag()}}
                {{form.fecha(class="form-control",placeholder="Fecha")}}
            </div>
             <div>
                {{form.hidden_tag()}}
                {{form.file(placeholder="File")}}
            </div>
            </fieldset>
            <div class="form-group">
            {{ form.submit(class="btn btn-primary") }}
        </div>
        </form>

Мне не удается получить доступ к данным файла (которые мне придется сохранить позже, но после того, как мне удастся получить файл)

1 Ответ

0 голосов
/ 24 апреля 2019

Попробуйте:

form = AnadirForm(request.POST or None, request.FILES or None)

или

if request.method == 'POST':        
    file = request.files['file_name']
...