【发布时间】:2013-07-22 05:27:16
【问题描述】:
我正在阅读此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 或age 怎么办。我可以这样做吗:
from formencode import Schema, validators
class LinkForm(Schema):
__init__(self, fields):
for field in fields:
condition = fields[field]
field = validators.UnicodeString(condition)
我认为这行不通。在这种情况下有解决办法吗?
【问题讨论】: