CKAN:从基本控制器继承时,视图为空

时间:2018-07-11 06:51:21

标签: python flask jinja2 ckan

我想更改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:奇怪的是,当我对组织控制器执行相同的操作时,它起作用了!!!

谢谢

0 个答案:

没有答案