我想更改CKAN注册逻辑,所以我从CKAN UserController类继承并将其注册为路由,但是当我尝试查看页面时,注册表单为空。它仅显示表单的页眉,页脚和标题。我没有创建./user/new.html文件,因此我仍在使用ckan模板文件。
我的plugin.py文件
from ckan.config.routing import SubMapper
class AuthPlugin(plugins.SingletonPlugin):
plugins.implements(plugins.IConfigurer)
plugins.implements(IRoutes, inherit=True)
def update_config(self, config_):
toolkit.add_template_directory(config_, 'templates')
toolkit.add_public_directory(config_, 'public')
toolkit.add_resource('fanstatic', 'auth')
def before_map(self, map):
user_controller = 'ckanext.auth.controllers.user:UserController'
with SubMapper(map, controller=user_controller) as m:
m.connect('/user/register', action='register')
return map
用户控制器类:
from ckan.controllers.user import UserController as CoreUserController
class UserController(CoreUserController):
def register(self, data=None, errors=None, error_summary=None):
return super(UserController, self).register(data, errors, error_summary)
我应该怎么做才能使这项工作成功?
P.S:我认为该错误存在于ckan ./templates/user.html文件中,该文件的格式为{{安全}}标签。为了使它能够工作,必须在控制器中设置某种上下文或某些内容。
P.S.2:奇怪的是,当我对组织控制器执行相同的操作时,它起作用了!!!
谢谢