2015-11-04 69 views
2

我有一个3种形式的Web应用程序。 2从flask_wtf.form.Form继承,它本身是从WTForms SecureForm获得的。这意味着这些表单具有自动CSRF保护。在WTForms-Alchemy中使用CSRF保护

第三种形式从模型对象继承它的属性,并继承自wtforms_alchemy.ModelForm,它本身从wtforms.Form继承。

如何将CSRF保护添加到最后一个表格中?

+0

我明白你在问什么,但是看到你所描述的具体例子会更有帮助。请考虑在您的问题中添加一些代码。 – davidism

+0

不知道我可以发布什么代码。我需要一个ModelForm来包含CSRF隐藏令牌。而已。 – ruipacheco

回答

2

对我来说有效的是在flask_wtf包中的Form中混合。

from flask_wtf import Form 

class YourForm(ModelForm, Form): 

结果也有一个有效的隐藏的CSRF令牌。

0

对我来说有效的是在flask_wtf包中配置flask_wtf.csrf中进行混合。

PY

from flask_wtf.csrf import CSRFProtect 
.... 
csrf = CSRFProtect(app) 

class UserForm(ModelForm): 
    class Meta: 
     model = User 
.... 

userform = UserForm() 

HTML

<form method="post"> 
    {{ userform.csrf_token }} 
    {{ userform.userform }} 
    <input type="submit" name="submit"> 
</form> 

结果也有一个有效的隐藏CSRF令牌。