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/
もどる