如何使用django-sitetree?

时间:2011-01-22 08:01:48

标签: django navigation breadcrumbs

我正在尝试使用django-sitetree,但我不明白如何执行第3步:

“转到Django管理站点并添加一些树和树项。”

如何在管理面板中制作网络剧?我相信第一步是为您要添加的“站点树”选择一个别名。

下一步是添加“站点树项”。在此页面上,您必须选择父级,标题,网址。考虑到我的应用是动态的网址结构,如localhost:8000/categoryname/entryname我如何选择网址?

顺便说一句,我正在尝试在模板中添加面包屑。

1 个答案:

答案 0 :(得分:19)

创建树:

  1. 转到网站管理面板;
  2. 点击'添加'站点树'附近+;
  3. 输入您的sitetree的别名,例如'maintree'。
    您将通过模板标记中的别名来解决您的树;
  4. 按“添加网站树项目”;
  5. 创建第一项:

      

    父级:因为它是没有父级的根项目   标题:让它成为'我的网站'   网址:此网址是静态的,因此请放在此处'/'。

  6. 创建第二个项目(可以从'categoryname / entryname'处理'categoryname'):

      

    父级:从步骤5中选择“我的网站”项。
      标题:放在此处'类别#{{category.id}}'   网址:将命名网址'category-detailed category.name'   在“其他设置”中:选中“网址格式”复选框。

  7. 创建第三个项目(那个将从'categoryname / entryname'处理'entryname'):

      

    父级:从步骤6中选择“类别#{{category.id}}”项。
      标题:点击此处'输入#{{entry.id}}'   网址:将命名网址'entry-detailed category.name entry.name'   在“其他设置”中:选中“网址格式”复选框。

  8. 将'{%load sitetree%}'放入yor模板以访问sitetree标记。
  9. 将'{%sitetree_menu从“maintree”%}'放入您的模板中以进行渲染菜单。
  10. 将'{%sitetree_breadcrumbs from“maintree”%}'放入模板中以呈现面包屑。

  11. 步骤6和7需要一些澄清:

    • 在标题中我们使用Django模板变量,它们就像在模板中一样被解析。

        

      例如:您查看了'categoryname'(我们称之为'detailed_category')将类别对象传递给模板   作为'category'变量。假设category对象具有'id'属性。   在您的模板中,使用“{{category.id}}”来呈现ID。我们这样做   第6步中的站点树项目相同。

    • 在URL中,我们使用Django的命名URL模式(documentation)。在模板中使用Django“url”标记几乎是完全一样的。

        

      您的步骤6,7的网址配置应包括:

           

      url(r'^(?P< category_name> \ S +)/(?P< entry_name> \ S +)/ $','detailed_entry',name =' entry-detailed ') ,
        url(r'^(?P< category_name> \ S +)/ $','detailed_category',name =' category-detailed '),

           

      因此,在第7步中将'entry-detailed category.name entry.name'放入URL字段中,我们告诉sitetree将该sitetree项与名为'entry-detailed'的URL相关联,并将其传递给category_name和entry_name参数。

    我希望这个描述应该填补文档差距%)