如何将新创建的页面 url 添加到修改后的 django-oscar

How to add new created page url to modified django-oscar

我是 django-oscar 的初学者,我尝试在页面上管理一个新视图。

我已经使用 django-oscar 仪表板创建了两个页面,

https://ibb.co/cM9r0v

并在模板中制作了新按钮:

Lib/site-packages/oscar/templates/oscar/partials/nav_primary.html

https://gist.github.com/Kalinar/076fc8144869c3b50fc0bc9e52f825e4

我不知道如何制作一个好的 href="???"到按钮中的新页面...有人可以帮忙吗? 也许有更好的方法,你能解释一下吗?

您已经知道页面的标题,当然还有id,每个页面都是模型的一个实例PagePromotion,只需查询此类 name/id 的模型,并使用返回实例的属性 page_url 将其发送到变量中在呈现菜单的视图的上下文中。

然后在模板中:

href="{{ variable_containing_url }}"

Oscar 使用 Django 的 flatpages 应用程序,因此您可以使用它们的模板标签将导航链接动态添加到您创建的页面。

{% load flatpages %}
{% get_flatpages as flatpages %}

{% for page in flatpages %}
<li class="dropdown active">
    <a href="{{ page.url }}" class="dropdown-toggle" {% if not expand_dropdown %} data-toggle="dropdown"{% endif %}>
        {% trans page.title %}
    </a>
</li>
{% endfor %}

您可以在 Django flatpage documentation.

中找到有关平面应用程序的更多信息