【问题标题】:Django dynamic navigation block in global view全局视图中的 Django 动态导航块
【发布时间】:2012-10-10 08:25:06
【问题描述】:

我想在视图中创建一个简单的导航块,即全局布局视图。

我认为,我可以使用自定义包含标签来做到这一点,但我怎样才能获得当前请求 URL,因为我想确定当前 URL 并将其设置为导航块中的活动项目。我怎样才能获得一些全局请求变量或者我需要任何其他方法?

#templatetags/menutags.py
@register.inclusion_tag('menu.html')
def show_menu():
    categories = Categories.object.all()
    return {'categories': categories}

#templates/base.html
{% include menutags %}
<!DOCTYPE html>
<html lang="en">
<head></head>
<body>
    {% show_menu %}
    {% block content %}{% endblock %}
</body>
</html>

#templates/view.html
{% extends "base.html" %}
{% block content %}<div>...</div>{% endblock %}

【问题讨论】:

  • 我认为您在问题中混淆了“视图”和“模板”。而且我不完全了解您想要什么以及到底什么不起作用
  • 在 menu.html 中,我希望将类别项目之一设置为活动状态。 base.html 我使用扩展所有其他视图的类似布局。

标签: django django-templates django-views


【解决方案1】:

试试这个:

@register.inclusion_tag('menu.html', takes_context = True)
def show_menu(context):
    categories = Categories.object.all()
    path= context['request'].path
    return {'categories': categories,'path':path}

【讨论】:

  • 我尝试了以下方法,但在上下文中请求不存在
  • 您需要使用 RequestContext 在视图中呈现模板,并在设置中启用了请求上下文处理器。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-08
  • 1970-01-01
  • 2021-01-27
  • 2019-05-12
  • 1970-01-01
相关资源
最近更新 更多