python - 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)
我应该怎么做才能完成这项工作?
PS:因为我认为错误在 ckan ./templates/user.html 文件中,该文件有一个 {{ form | 安全}}标签。必须在控制器中设置某种上下文或某些内容才能使其工作。
PS2:奇怪的是当我为组织控制器做同样的事情时,它起作用了!!!
谢谢
解决方案
推荐阅读
- javascript - 谷歌地图标记聚类不起作用
- javascript - 删除段落中的特定单词并使用 JS 和正则表达式修改其后的第一个单词?
- python - 蟒蛇 | 使用 python 和 html 表单发送电子邮件时出错。没有电子邮件到达
- angular - invalidFileSizeMessageDetail & invalidFileSizeMessageSummary 消息对于 p-fileUpload 组件不可见
- applescript - 如何提示用户输入并将该值放在使用applescript的终端命令中?
- laravel - 上传的视频获取随机名称,而不是获取我在 laravel 上定义的名称
- javascript - 如何在 Node.js 中从服务器端正确获取
- javascript - 无法捕获网页的全屏截图
- php - Laravel 雄辩的关系如何获取关系?
- java - 我正在尝试从 mysql 数据库获取 otp 尝试发送密码,但如何使用 java selenium webdriver 发送该 otp