我正在阅读这个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
, title
。但是,我不确定最后一个,因为之前我只看到使用def
.
无论如何,我的问题与此无关。我想知道是否可以使类的定义动态化。例如,有时我不想url
或不想title
上课。这似乎是可行的(我只是if
在满足语句的情况下使用并为 url 分配一个值。
但是,如果我事先不知道我想在表单中包含哪些字段怎么办?例如,现在我有用户名、网址和标题。但是,如果以后我想拥有city
or怎么办age
?我可以做这样的事情:
from formencode import Schema, validators
class LinkForm(Schema):
__init__(self, fields):
for field in fields:
condition = fields[field]
field = validators.UnicodeString(condition)
我认为这行不通。在这种情况下有解决办法吗?