7

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

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

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

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

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

4

1 回答 1

19

创建树:

  1. 转到站点管理面板;
  2. 单击“站点树”附近的+添加;
  3. 输入站点树的别名,例如“maintree”。
    您将通过模板标签中的此别名来处理您的树;
  4. 推送“添加站点树项”;
  5. 创建第一个项目:

    父项:因为它是没有父项的根项。
    标题:让它成为“我的网站”。
    URL:这个 URL 是静态的,所以放在这里 '/'。

  6. 创建第二个项目(该项目将从您的“类别名称/条目名称”处理“类别名称”):

    家长:从第 5 步中选择“我的网站”项目。
    标题:放在这里“类别#{{ category.id }}”。
    URL:把命名的 URL 'category-detailed category.name'。
    在“附加设置”中:选中“ URL as Pattern ”复选框。

  7. 创建第三个项目(该项目将处理您的“类别名称/条目名称”中的“条目名称”):

    家长:从第 6 步中选择“类别#{{ category.id }}”项目。
    标题:放在这里“条目#{{ entry.id }}”。
    URL:把命名的 URL 'entry-detailed category.name entry.name'。
    在“附加设置”中:选中“ URL as Pattern ”复选框。

  8. 将“{% load sitetree %}”放入您的模板中以访问站点树标签。
  9. 将 '{% sitetree_menu from "maintree" %}' 放入模板以呈现菜单。
  10. 将 '{% sitetree_breadcrumbs from "maintree" %}' 放入模板以呈现面包屑。

步骤 6 和 7 需要一些说明:

  • 在标题中,我们使用 Django 模板变量,这将像在您的模板中一样被解析。

    例如:您为“categoryname”(我们称之为“detailed_category”)创建了视图,以将类别对象作为“category”变量传递给模板。假设类别对象具有“id”属性。在您的模板中,您使用 '{{ category.id }}' 来呈现 id。我们在步骤 6 中对站点树项目执行相同的操作。

  • 在 URL 中,我们使用 Django 的命名 URL 模式(文档)。这与在模板 中使用 Django ' url ' 标记几乎相同。

    步骤 6、7 的 urls 配置应该包括:

    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 将该站点树项与名为“entry-detailed”的 URL 相关联,并将 category_name 和 entry_name 参数传递给它。

我希望这个描述能填补文档空白 %)

于 2011-02-03T15:13:58.590 回答