Python Pylons 一覧系アプリケーションを作る(validate追加)



前回作成したアプリケーションに入力チェックの機能を追加してみます。

ルールは、
・タイトル、コメントは必須入力
というカンタンなものです。

model/form.py
を作成し、検証ルールを追加します。


#■model/form.py
# -*- coding:utf-8 -*-
import formencode
class EditForm(formencode.Schema):
  allow_extra_fields = True
  filter_extra_fields = True
  
  #title,contentは、HTMLで出力される
  #タグの名称と一致させる。
  title = formencode.validators.NotEmpty()
  content = formencode.validators.NotEmpty()



コントローラーのpage.pyに機能を追加します。


#■controllers/page.py
# -*- coding:utf-8 -*-
#作成したクラスをimport
from helloworld.model.form import EditForm

#saveメソッドの前に、validateを追加
@validate(schema=EditForm(), form='new')
def save(self, id):


これだけの変更で入力のチェックが行われるようになりました。

ちなみに、
@validate
のform引数に追加する値は、検証が通過しなかった場合に処理を
行うメソッド名です。

例の記載を行うと、検証に通過しなかった場合、新規登録用の
メソッド new に処理が引き継がれます。


FormEncodeのオフィシャルサイトはこちら
http://formencode.org/




もどる