django菜单应用程序
django-yama的Python项目详细描述
简介
django yama(又一个菜单应用)是一个相当通用的菜单 申请Django 1.1(及以上)。它支持层次结构 (树结构)任意深度的菜单,并使您能够创建 菜单链接到来自其他django应用程序的模型对象和视图,如 以及外部URL。
应用程序的管理部分是完全定制的,使用jquery 提供简单的用户界面。界面大部分被撕破了 从受django-page-cms影响的^w^w^w关闭。
在前端部署django yama的最佳方式可能是 通过自定义模板上下文处理器。模板标记 它可以将菜单呈现为无序的HTML列表。
安装和配置
这个包现在可以通过pypi获得。这取决于 django-mptt对于its 层次结构,显然是django本身,所以您将 也需要安装这些。
或者,您可以查看Mercurial的最新版本 存储库:
hg clone http://django-yama.googlecode.com/hg django-yama
安装了yama后,您需要一些常用步骤:
- 将'yama'添加到INSTALLED_APPS
- 要创建必要的数据库表,请运行python manage.py syncdb;或者,如果您使用的是south,请运行python manage.py migrate yama。
- 将媒体目录的内容复制到MEDIA_ROOT。 您也可以使用django-staticfiles。
还有一些更具体的:
由于yama使用django的机器进行javascript翻译, 您需要为django的^{tt6}提供一个条目$ 在您的urls.py中查看。通常情况下,看起来 例如:
(r'^jsi18n/(?P<packages>\S+?)/$', 'django.views.i18n.javascript_catalog'),
如果您不打算链接到对象或视图(即计划输入 网址直接),你很好去。否则,你得告诉我 Yama要链接到的模型和视图。您可以编辑 settings.py在yama目录中,或者在站点范围内编辑 settings.py并调整以下两个设置:
YAMA_MODELS,这是一本字典。表中的键是成对的 ('app_label', 'model name'), and values provide filters, which allow only a subset of model instances to be used as menu targets. Values can either be None, which indicates that no filtering is to be applied, or ``Q表示 所需的筛选操作。或者,值也可以是 返回Q对象的可调用函数;这些可调用函数被赋予 单参数,一个HttpRequest对象。实际上,callables是 您在整个站点范围内筛选的唯一选项settings.py,因为 在顶层导入Q对象将导致循环 进口。下面是一个示例:
def user_list(request): from django.db.models import Q return Q(is_active=True) YAMA_MODELS = {('auth', 'User') : user_list}
所有给定的模型都将实现 get_absolute_url方法。
YAMA_VIEWS,这是一个成对序列。每一对选手 ('reverse-able name', 'display name')的形式。示例:
YAMA_VIEWS = ( ('blog-index', _('Blog index')), ('blog.views.archive', _('Blog archive')), )
目前,这些视图不需要任何参数(分开 来自request)。