2012-05-18 29 views
1

我已經從類創建了sqlalchemy類和wtform表單。如何刪除wtforms中id字段的驗證器

from wtforms.ext.sqlalchemy.orm import model_form 
class ClientGroup(Base, BaseModel): 
    __tablename__ = 'client_groups' 

    id = Column(Integer, primary_key=True) 
    name = Column(String(255)) 
    sale = Column(Integer) 

    def __unicode__(self): 
     return self.name 


ClientGroupForm = model_form(ClientGroup, Form, field_args={ 
    'name': {'validators' : [validators.Required(), validators.Length(min=5)]}, 
}) 

在應用程序我有下面的代碼:

form = ClientGroupForm(request.form) 
if form.validate(): 
    .. save data 

當我發送一個新的數據到App其回報我的驗證錯誤。 ID必須是整數字段。 但是新數據沒有任何標識。

請給我建議我怎樣才能使用wtforms與sqlalchemy?

回答

2

讓它明確可選,通過添加以下到field_args

'id': {'validators' : [validators.Optional()], 

不過,我想你應該從完全的形式排除id領域:

ClientGroupForm = model_form(ClientGroup, Form, field_args={ 
    'name': {'validators' : [validators.Required(), validators.Length(min=5)]}, 
    exclude=['id'], 
})