我正在尝试编写一个基本的 CRUD 控制器类来执行以下操作
下列的:
class BaseCrudController:
model = ""
field_validation = {}
template_dir = ""
@expose(self.template_dir)
def new(self, *args, **kwargs)
....
@validate(self.field_validation, error_handler=new)
@expose()
def post(self, *args, **kwargs):
...
我的目的是让我的控制器扩展这个基类,设置
模型、字段验证和模板位置,准备就绪。
不幸的是,装饰器(据我理解)在以下情况下被解释:
函数已定义。因此它无法访问实例的
价值。有没有办法从子进程中传递动态数据或值
班级?
例如:
class AddressController(BaseCrudController):
model = Address
template_dir = "addressbook.templates.addresses"
当我尝试加载 AddressController 时,它显示“self 未定义”。我假设基类在子类初始化之前评估装饰器。
谢谢,
史蒂夫
也许使用工厂来创建类会比子类化更好:
def CrudControllerFactory(model, field_validation, template_dir):
class BaseCrudController:
@expose(template_dir)
def new(self, *args, **kwargs)
....
@validate(field_validation, error_handler=new)
@expose()
def post(self, *args, **kwargs):
....
return BaseCrudController
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)