在Django的管理员端与Grappelii导航

时间:2012-10-18 10:43:05

标签: django django-admin django-grappelli

我安装了grappelli.dashboard。按照所有步骤操作,但仍然不显示导航。安装仪表板后,将创建dashboard.py文件。 在该dashboard.py文件中,“Group:Administration& Applications”,“Support”,“Latest Django News”,“Recent Actions”将会出现。

有人可以告诉我如何添加导航吗?

我还希望在Django中使用grappelli在管理端添加书签功能。 我正在使用Grappeli 2.3.8和Django 1.4。 Grappeli 2.0具有书签,导航等功能,但New Grappeli版本确实具有这一功能。有没有办法自定义它来添加书签?

以下是dashboard.py的代码

from django.utils.translation import ugettext_lazy as _
from django.core.urlresolvers import reverse

from grappelli.dashboard import modules, Dashboard
from grappelli.dashboard.utils import get_admin_site_name


class CustomIndexDashboard(Dashboard):
"""
Custom index dashboard for www.
"""

def init_with_context(self, context):
    site_name = get_admin_site_name(context)

    # append a group for "Administration" & "Applications"
    self.children.append(modules.Group(
        _('Group: Administration & Applications'),
        column=1,
        collapsible=True,
        children = [
            modules.AppList(
                _('Administration'),
                column=1,
                collapsible=False,
                models=('django.contrib.*',),
            ),
            modules.AppList(
                _('Applications'),
                column=1,
                css_classes=('collapse closed',),
                exclude=('django.contrib.*',),
            )
        ]
    ))

    # append an app list module for "Applications"
    self.children.append(modules.AppList(
        _('AppList: Applications'),
        collapsible=True,
        column=1,
        css_classes=('collapse closed',),
        exclude=('django.contrib.*',),
    ))

    # append an app list module for "Administration"
    self.children.append(modules.ModelList(
        _('ModelList: Administration'),
        column=1,
        collapsible=False,
        models=('django.contrib.*',),
    ))

    # append another link list module for "support".
    self.children.append(modules.LinkList(
        _('Media Management'),
        column=2,
        children=[
            {
                'title': _('FileBrowser'),
                'url': '/admin/filebrowser/browse/',
                'external': False,
            },
        ]
    ))

    # append another link list module for "support".
    self.children.append(modules.LinkList(
        _('Support'),
        column=2,
        children=[
            {
                'title': _('Django Documentation'),
                'url': 'http://docs.djangoproject.com/',
                'external': True,
            },
            {
                'title': _('Grappelli Documentation'),
                'url': 'http://packages.python.org/django-grappelli/',
                'external': True,
            },
            {
                'title': _('Grappelli Google-Code'),
                'url': 'http://code.google.com/p/django-grappelli/',
                'external': True,
            },
        ]
    ))

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

    # append a recent actions module
    self.children.append(modules.RecentActions(
        _('Recent Actions'),
        limit=5,
        collapsible=False,
        column=3,
    ))

1 个答案:

答案 0 :(得分:0)

我已经解决了这个问题。像grappelli 2.0一样定制grappelli。将导航类添加到models.py中,并将导航块添加到index.html文件中并且它可以正常工作。将样式更改为新的Grappelli结构。