2014-02-07 46 views
0

我正在嘗試在我的Flask應用程序中創建一個註冊頁面。我正在使用Flask-Security進行用戶管理。我已經正確設置了它;標準註冊頁面的確可以正確呈現。但是,我的模型由很多額外的必需字段組成,所以我需要更新視圖。瓶頸安全中的註冊頁面上的額外字段

我security_config文件看起來如下:

from models import * 
from flask_security.forms import ConfirmRegisterForm, Required 

class ExtendedConfirmRegisterForm(ConfirmRegisterForm): 
    first_name = CharField('Voornaam', [Required()]) 
    last_name = CharField('Achternaam', [Required()])   

# Setup Flask-Security 
user_datastore = PeeweeUserDatastore(db, Student, Role, StudentRoleRel) 
security = Security(app, user_datastore, 
     confirm_register_form=ExtendedConfirmRegisterForm) 

我的形式:

{% extends "base.html" %} 
{% from "security/_macros.html" import render_field_with_errors, render_field %} 
{% include "security/_messages.html" %} 
{% block main%} 
<h1>Registreer</h1> 
<form action="{{ url_for_security('register') }}" method="POST" name="register_user_form"> 
    {{ register_user_form.hidden_tag() }} 
    {{ render_field(register_user_form.first_name) }} 
    {{ render_field(register_user_form.last_name) }} 
    {{ render_field_with_errors(register_user_form.email) }} 
    {{ render_field_with_errors(register_user_form.password) }} 
    {% if register_user_form.password_confirm %} 
    {{ render_field_with_errors(register_user_form.password_confirm) }} 
    {% endif %} 
    {{ render_field(register_user_form.submit) }} 
</form> 
{% endblock %} 

當我嘗試打開註冊頁面,我得到以下錯誤:

AttributeError: 'CharField' object has no attribute '__call__' 

我不知道如何繼續。我該如何解決這個問題?

回答

0

我自己發現了這個問題。

在我的安全配置文件,我忘了輸入文本字段(在原來的,我用CharField,但這種類型的不可用)

from models import * 
from flask_security.forms import ConfirmRegisterForm, Required, TextField 

class ExtendedConfirmRegisterForm(ConfirmRegisterForm): 
    first_name = TextField('Voornaam', [Required()]) 
    last_name = TextField('Achternaam', [Required()])   

# Setup Flask-Security 
user_datastore = PeeweeUserDatastore(db, Student, Role, StudentRoleRel) 
security = Security(app, user_datastore, 
     confirm_register_form=ExtendedConfirmRegisterForm) 
+0

,這將引發'InterfaceError:錯誤綁定參數0 - 可能不支持type' – KJW

+0

嘿我得到'jinja2.exceptions.UndefinedError:'flask_security.forms.ConfirmRegisterForm對象'沒有屬性'first_name'' – user299709