Django CMS обратный админ - PullRequest
1 голос
/ 10 ноября 2019

Я очень новичок в 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.

Я не понимаю, как я могу это исправить .. Кто-нибудь может мне помочь в этом случае?

Что такое на самом деле reverse-admin?

1 Ответ

0 голосов
/ 12 ноября 2019

Вот ссылка на документацию , а вот исходный код .

Что admin_reverse делает, это разрешает администратору (список / добавление / редактирование)представление модели django для отображения в модале djangocms.

В вашем случае что-то подобное должно работать:

admin_reverse('blog_pluginmodel_changelist')

или

admin_reverse('blog_pluginmodel_add')

Вболее абстрактный способ: reverse_admin('appname_modelname_adminview').

PS: Я не уверен, действительно ли модель плагина - это то, что вы хотите сделать доступной через панель инструментов, но это другое обсуждение.

...