2017-01-17 2 views
0

Я использую Flask web development учебник, и у меня есть несколько ошибок; мое простое веб-приложение использует FlaskForm и я пытаюсь проверить информацию, но у меня возникают некоторые проблемы, особенно в функции validate_on_submit(). Вот мой код питона происходитТипError: validate_on_submit() отсутствует 1 обязательный позиционный аргумент: 'self'

class NameForm(FlaskForm): 
    name = StringField("What is your name?", validators=[required]) 
    submit = SubmitField('Submit') 



@app.route('/index', methods=['GET', 'POST']) 
def index(): 
    name = None 
    formi = NameForm() 


    if FlaskForm.validate_on_submit(): 
     name = FlaskForm.name.data 
     FlaskForm.name.data = '' 
     return render_template('index.html', form=formi, name=name) 

моя ошибка в если заявление

ответ

1

Вам нужно позвонить validate_on_submit из экземпляра формы, а не для класса. Использование:

if formi.validate_on_submit(): 
1

Эта ошибка означает, что validate_on_submit следует назвать экземпляром класса FlaskForm, а не с самим классом, как показано в этом примере из docs:

@app.route('/submit', methods=('GET', 'POST')) 
def submit(): 
    form = MyForm() 
    if form.validate_on_submit(): 
     return redirect('/success') 
    return render_template('submit.html', form=form) 

Применяя к вашему код, строка if FlaskForm.validate_on_submit(): следует изменить на
if formi.validate_on_submit():.

+0

Мне действительно нужны некоторые положительные моменты для этого вопроса, я не могу задать какой-либо другой вопрос в переполнении стека без каких-либо положительных моментов для моих вопросов. проголосуйте –

Смежные вопросы