1
resposta

Flask WTF

Por algum motivo, a condicional if da rota criar não está funcionando. Porém a aplicação identifica quando o formulário não é preenchido sem essa condicional . Alguém sabe o motivo?

@app.route('/criar',methods=['POST',])
def criar():
    form = FormularioJogo(request.form)
    #if not form.validate_on_submit():
        #return redirect(url_for('novo'))

    nome = form.nome.data
    categoria = form.categoria.data
    console = form.console.data

    jogo = Jogos.query.filter_by(nome=nome).first()

    if jogo:
        flash("O Jogo Já Existe! ")
        return redirect(url_for('index'))

    novo_jogo = Jogos(nome=nome,categoria=categoria,console=console)
    db.session.add(novo_jogo)
    db.session.commit()

    arquivo = request.files['arquivo']
    upload_path = app.config['UPLOAD_PATH']
    timestamp = time.time()
    arquivo.save(f'{upload_path}/{novo_jogo.id}-{timestamp}.jpg')


    return redirect(url_for('index'))
class FormularioJogo(FlaskForm):
    nome = StringField('Nome do jogo', [validators.DataRequired(), validators.length(min=1,max=50)])
    categoria = StringField('Categoria', [validators.DataRequired(), validators.length(min=1,max=40)])
    console = StringField('Console', [validators.DataRequired(), validators.length(min=1,max=20)])
    salvar = SubmitField('Salvar')
1 resposta

Olá Gabriel, tudo bem com você?

Peço desculpas pela demora em lhe responder.

Realizei testes e simulações com o código enviado em conjunto com o código da aula, a validação do formulário ocorreu como esperado. A estrutura condicional if redirecionou o usuário para a página novo quando o formulário era inválido.

Peço que compartilhe o seu projeto completo, assim, poderei realizar novos testes e simulações. Basta compactar a pasta do projeto, disponibilizá-la em um site de compartilhamento de arquivos (exemplo: Google Drive) e enviar o link de compartilhamento na resposta desta postagem.

Abraços e bons estudos!

Fico no aguardo e à disposição