このGenshi Tutorialを読んでいると、次の例が表示されます。
from formencode import Schema, validators
class LinkForm(Schema):
username = validators.UnicodeString(not_empty=True)
url = validators.URL(not_empty=True, add_http=True, check_exists=False)
title = validators.UnicodeString(not_empty=True)
この例を理解する限り、クラスを継承する新しいクラスを作成し、Schema
このクラスにはusername
、url
、 の3 つのメソッドが含まれますtitle
。ただし、以前はdef
.
とにかく、私の質問はそれについてではありません。クラスの定義を動的にすることが可能かどうか知りたいです。url
たとえば、クラスに参加したくない、またはクラスに参加したくない場合title
があります。if
実行可能のようです( if-statementが満たされている場合にのみ、URLに値を使用して割り当てるだけです。
しかし、フォームに入力したいフィールドが事前にわからない場合はどうすればよいでしょうか? たとえば、ユーザー名、URL、およびタイトルがあります。しかし、後で or が必要な場合はどうでしょうcity
かage
。私はそのようなことをすることができます:
from formencode import Schema, validators
class LinkForm(Schema):
__init__(self, fields):
for field in fields:
condition = fields[field]
field = validators.UnicodeString(condition)
うまくいかないと思います。この場合の回避策はありますか?