我对django CMS非常陌生,我正在尝试添加博客的toolbar
。
这是我的cms_toolbar.py
文件
from cms.toolbar_base import CMSToolbar
from cms.toolbar_pool import toolbar_pool
from blog.models import BlogPluginModel
from cms.utils.urlutils import admin_reverse
class PollToolbar(CMSToolbar):
def populate(self):
menu = self.toolbar.get_or_create_menu(
'blog_pluginmodel', # a unique key for this menu
'blog', # the text that should appear in the menu
)
menu.add_modal_item(
name='Add a new blog', # name of the new menu item
url=admin_reverse('blog_pluginmodel'), # the URL it should open with
)
toolbar_pool.register(PollToolbar)
但是在以下情况下将我解雇了:
NoReverseMatch at /en/
Reverse for 'blog_pluginmodel' not found. 'blog_pluginmodel' is not a valid view function or pattern name.
我不知道该如何解决。在这种情况下,有人可以帮助我吗?
什么是反向管理员?
答案 0 :(得分:1)
这里是documentation的链接,这里是source code。
admin_reverse
的作用是解析django模型的admin(列表/添加/编辑)视图,以djangocms模式显示它。
在您的情况下,类似这样的方法应该起作用:
admin_reverse('blog_pluginmodel_changelist')
或
admin_reverse('blog_pluginmodel_add')
以更抽象的方式:reverse_admin('appname_modelname_adminview')
。
P.S .:我不确定是否真的想通过工具栏访问插件模型,但这是另一个讨论。