Невозможно добавить мои модели в django -admin-tools - PullRequest
0 голосов
/ 26 марта 2020

Я установил и настроил django -admin-tool, используя следующую документацию Настройка django -admin-tools

Кажется, все работает нормально, но я не знаю как добавить мои модели в панель управления?

Мое приложение называется "hotel", например, в представлениях я могу связать свои модели, например:

views.py

from hotel.models import Rooms

Я использовал пользовательский dashboard.py (автоматически сгенерированный) и добавил следующий дочерний элемент:

dashboard.py

    #Hotel settings
    self.children.append(modules.AppList(
        _('Hotel settings'),
        models=('hotel.*',),
        content='Test content',
        children=[]

    ))

, но ничего не изменилось .

Когда я изменяю на:

    #Hotel settings
self.children.append(modules.AppList(
    _('Hotel settings'),
    models=('django.contrib.*',),
    content='Test content',
    children=[]

))

Затем я вижу новый раздел "Настройка отеля".

Кажется, ошибка в

models=('hotel.*',),

Что может быть не так? Или я понимаю, как django -admin-tools работает неправильно? Должен ли я использовать CustomAppIndexDashboard вместо этого?

Я пытался изменить CustomAppIndexDashboard, но ничего не изменилось в админке. Для доступа к CustomAppIndexDashboard необходимо использовать любой другой URL-адрес? Или как это работает?

Я проверил права пользователей. У меня есть только один пользователь, и этот пользователь является суперпользователем, поэтому у этого пользователя есть разрешения на все модели.

Полный файл dashboard.py:

dashboard.py

from django.utils.translation import ugettext_lazy as _
try:
    from django.urls import reverse
except ImportError:
from django.core.urlresolvers import reverse

from admin_tools.dashboard import modules, Dashboard, AppIndexDashboard
from admin_tools.utils import get_admin_site_name



class CustomIndexDashboard(Dashboard):

    def init_with_context(self, context):
        site_name = get_admin_site_name(context)
        # append a link list module for "quick links"
        self.children.append(modules.LinkList(
            _('Quick links'),
            layout='inline',
            draggable=False,
            deletable=False,
            collapsible=False,
            children=[
                [_('Return to site'), '/'],
                [_('Change password'),
                 reverse('%s:password_change' % site_name)],
                [_('Log out'), reverse('%s:logout' % site_name)],
            ]
        ))
        #Hotel settings
        self.children.append(modules.AppList(
            _('Hotel settings'),
            models=('django.contrib.*',),
            content='Test content',
            children=[]

        ))

        # append an app list module for "Applications"
        self.children.append(modules.AppList(
            _('Applicationss'),
            exclude=('django.contrib.*',),

        ))

        # append an app list module for "Administration"
        self.children.append(modules.AppList(
            _('Administration'),
            models=('django.contrib.*',),
        ))

        # append a recent actions module
        self.children.append(modules.RecentActions(_('Recent Actions'), 5))

        # append a feed module
        self.children.append(modules.Feed(
            _('Latest Django News'),
            feed_url='http://www.djangoproject.com/rss/weblog/',
            limit=5
        ))

        # append another link list module for "support".
        self.children.append(modules.LinkList(
            _('Support'),
            children=[
                {
                    'title': _('Django documentation'),
                    'url': 'http://docs.djangoproject.com/',
                    'external': True,
                },
                {
                    'title': _('Django "django-users" mailing list'),
                    'url': 'http://groups.google.com/group/django-users',
                    'external': True,
                },
                {
                    'title': _('Django irc channel'),
                    'url': 'irc://irc.freenode.net/django',
                    'external': True,
                },
            ]
        ))


class CustomAppIndexDashboard(AppIndexDashboard):


    # we disable title because its redundant with the model list module
    title = ''

    def __init__(self, *args, **kwargs):
        AppIndexDashboard.__init__(self, models, *args, **kwargs)

        # append a model list module and a recent actions module
        self.children += [
            modules.ModelList(self.app_title, self.models),
            modules.RecentActions(
                _('Recent Actions'),
                include_list=self.get_app_content_types(),
                limit=5
            ),
        ]

    def init_with_context(self, context):
        """
        Use this method if you need to access the request context.
        """
        return super(CustomAppIndexDashboard, self).init_with_context(context)

Заранее спасибо.

...