如何使用 django-sitetree?

发布于 2024-10-14 07:31:44 字数 369 浏览 4 评论 0原文

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

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

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

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

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

I am trying to use django-sitetree but I don't understand how to do step 3 which is:

"Go to Django Admin site and add some trees and tree items."

How to make a sitetree in the admin panel? I believe the first step is to choose an alias for the "Site Tree" you are about to add.

The next step is to add "Site Tree Item". On this page you have to choose parent, title, url. Considering my app is dynamic with url structure like this localhost:8000/categoryname/entryname how do I choose urls?

By the way I am trying to add breadcrumbs in my templates.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

ヤ经典坏疍 2024-10-21 07:31:44

要创建树:

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

    <块引用>

    父项:因为它是没有父项的根项。
    标题:设为“我的网站”。
    URL:此 URL 是静态的,因此请在此处输入“/”。

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

    <块引用>

    家长:从第 5 步中选择“我的网站”项目。
    标题:在此输入“类别#{{category.id }}”。
    URL: 输入命名 URL“类别详细类别.名称”。
    在“其他设置”中:选中“URL 作为模式”复选框。

  7. 创建第三个项目(该项目将处理“categoryname/entryname”中的“entryname”):

    <块引用>

    家长:从第 6 步中选择“类别 #{{category.id }}”项目。
    标题:在此处输入“条目#{{entry.id }}”。
    URL:输入命名 URL“条目详细类别.名称条目.名称”。
    在“其他设置”中:选中“URL 作为模式”复选框。

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

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

  • 在标题中,我们使用 Django 模板变量,这些变量将像在模板中一样进行解析。

    <块引用>

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

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

    <块引用>

    第 6、7 步的网址配置应包括:

    url(r'^(?P\S+)/(?P\S+)/$', 'detailed_entry', name='条目详细') ,
    url(r'^(?P\S+)/$', 'detailed_category', name='类别详细'),

    因此,将步骤 7 中的“entry-detailedcategory.nameentry.name”放入 URL 字段中,我们告诉 sitetree 将该 sitetree 项目与名为“entry-detailed”的 URL 相关联,并向其传递“category_name”和“entry_name”参数。

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

To create a tree:

  1. Goto site administration panel;
  2. Click +Add near 'Site Trees';
  3. Enter alias for your sitetree, e.g. 'maintree'.
    You'll address your tree by this alias in template tags;
  4. Push 'Add Site Tree Item';
  5. Create first item:

    Parent: As it is root item that would have no parent.
    Title: Let it be 'My site'.
    URL: This URL is static, so put here '/'.

  6. Create second item (that one would handle 'categoryname' from your 'categoryname/entryname'):

    Parent: Choose 'My site' item from step 5.
    Title: Put here 'Category #{{ category.id }}'.
    URL: Put named URL 'category-detailed category.name'.
    In 'Additional settings': check 'URL as Pattern' checkbox.

  7. Create third item (that one would handle 'entryname' from your 'categoryname/entryname'):

    Parent: Choose 'Category #{{ category.id }}' item from step 6.
    Title: Put here 'Entry #{{ entry.id }}'.
    URL: Put named URL 'entry-detailed category.name entry.name'.
    In 'Additional settings': check 'URL as Pattern' checkbox.

  8. Put '{% load sitetree %}' into yor template to have access to sitetree tags.
  9. Put '{% sitetree_menu from "maintree" %}' into your template to render menu.
  10. Put '{% sitetree_breadcrumbs from "maintree" %}' into your template to render breadcrumbs.

Steps 6 and 7 need some clarifications:

  • In titles we use Django template variables, which would be resolved just like they do in your templates.

    E.g.: You made your view for 'categoryname' (let's call it 'detailed_category') to pass category object into template
    as 'category' variable. Suppose that category object has 'id' property.
    In your template you use '{{ category.id }}' to render id. And we do just
    the same for site tree item in step 6.

  • In URLs we use Django's named URL patterns (documentation). That is almost idential to usage of Django 'url' tag in templates.

    Your urls configuration for steps 6, 7 supposed to include:

    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'),

    So, putting 'entry-detailed category.name entry.name' in step 7 into URL field we tell sitetree to associate that sitetree item with URL named 'entry-detailed', passing to it category_name and entry_name parameters.

I hope this description should fill the documentation gap %)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文