gpt4 book ai didi

django - 如何使用 DRY 渲染带有一个事件项的菜单?

转载 作者:行者123 更新时间:2023-11-28 19:34:55 28 4
gpt4 key购买 nike

我想渲染这样的结构:

<a href='/home'>Home</a>
<span class='active'>Community</span>
<a href='/about'>About</a>

Community 是选中的菜单项。我有几个模板具有相同选项的菜单,但我不想为每个模板创建组合:

<!-- for Home template-->
<span class='active'>Home</span>
<a href='/comminuty'>Community</a>
<a href='/about'>About</a>
...
<!-- for Community template-->
<a href='/home'>Home</a>
<span class='active'>Community</span>
<a href='/about'>About</a>
...
<!-- for About template-->
<a href='/home'>Home</a>
<a href='/community'>Community</a>
<span class='active'>About</span>

我们有永久的菜单项列表,因此,它可能是更有效的方法 - 只创建一个通用的菜单结构,然后使用模板所需的选项呈现菜单。

例如,它可以是一个允许这样做的标签。

最佳答案

想出另一种方法来做到这一点,感谢这个答案足够优雅:https://stackoverflow.com/a/17614086/34871

给定一个 url 模式,例如:

url(r'^some-url', "myapp.myview", name='my_view_name'),

my_view_name 可通过 request 用于模板(记住您需要使用 RequestContext - 在使用 render_to_response 时它是隐式的)

然后菜单项可能看起来像:

<li class="{% if request.resolver_match.url_name == "my_view_name" %}active{% endif %}"><a href="{% url "my_view_name" %}">Shortcut1</a></li>
<li class="{% if request.resolver_match.url_name == "my_view_name2" %}active{% endif %}"><a href="{% url "my_view_name2" %}">Shortcut2</a></li>

等等

这样,url 可以更改,并且在 url 参数发生变化时它仍然有效,并且您不需要在其他地方保留菜单项列表。

关于django - 如何使用 DRY 渲染带有一个事件项的菜单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9793576/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com