django的拖放菜单管理器。
django-menuz的Python项目详细描述
django menuz是django的另一个菜单应用程序。
它的灵感主要来自wordpress中的菜单创建。Django Menuz提供 在指定位置调用菜单的模板标记。
由于它的拖放功能,它很容易重新排序菜单项的位置。
安装和使用:
一旦通过setup.py安装,就可以轻松安装或pip。
将menuz添加到INSTALLED_APPSdjangosettings.py文件中。
请确保django.core.context_processors.request在您的TEMPLATE_CONTEXT_PROCESSORS中可用。
还可以将下面的url配置添加到项目url配置中。
url(r'', include('menuz.urls')),
通过添加AVAILABLE_MENUS参数,在项目settings.py中注册所有可用的菜单位置。示例:
AVAILABLE_MENUS = ( { 'id': 'top_menu', 'title': _('Top Menu'), 'type': 'UL', #optional, default UL. alternative 'OL' 'class': 'someclass', #optional, output: <ul class="ul_toplevel someclass"> 'before_link': 'BBB', #optional, can be text or html tag. output: <li>BBB<a href="...">Title</a></li> 'after_link': 'AAA', #optional, can be text or html tag. output: <li><a href="...">Title</a>AAA</li> }, { 'id': 'footer_menu', 'title': _('Footer Menu'), 'type': 'UL', 'class': None, }, { 'id': 'left_menu', 'title': _('Left Menu'), 'type': 'OL', 'class': None, }, )
如果您的应用程序中很少有fix/static url,并且希望将其包含在菜单项中,请在项目中添加AVAILABLE_INNERLINKS。
AVAILABLE_INNERLINKS = ( ('/this_page/', 'This Page'), ('/that_page/', 'That Page'), ('/categories/', 'Categories Page'), ('/collections/', 'Collections Page'), ... ... etc. )
以上链接必须是入站链接,而不是到其他网站的链接(出站链接)。
对于出站链接菜单,请在菜单创建管理页中使用自定义链接。
重要提示:
要使模型菜单项正确链接到其url,您的模型必须使用get_absolute_url()函数。因为这是检索对象url的唯一标准方法,至少对于django menuz是这样。
示例:
from django.db import models class Page(models.Model): title = models.CharField(max_length=50) slug = models.SlugField() @models.permalink def get_absolute_url(self): return ('some_page', None, {'slug': self.slug})
测试
如果您想运行此应用程序的测试,您需要首先安装django nosehttps://pypi.python.org/pypi/django-nose(请参阅django nose文档了解如何安装)。
然后通过运行下面的命令运行测试:
python manage.py test menuz