Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在Django中根据每个应用程序自动将变量添加到上下文中?_Python_Django_Django Urls - Fatal编程技术网

Python 在Django中根据每个应用程序自动将变量添加到上下文中?

Python 在Django中根据每个应用程序自动将变量添加到上下文中?,python,django,django-urls,Python,Django,Django Urls,我想在Django中添加一个上下文变量,这样我就可以在每个应用程序的基础上定义它的值,或者将其保留为空 例如: apps/someapp/views.py: def_context_var('app_name', 'Calendar') 模板/base.html: {% if app_name %}You are in {{ app_name }} app.{% endif %} .... {% if app_name %}Subsections of {{ app_name }}: ...{

我想在Django中添加一个上下文变量,这样我就可以在每个应用程序的基础上定义它的值,或者将其保留为空

例如:

apps/someapp/views.py:

def_context_var('app_name', 'Calendar')
模板/base.html:

{% if app_name %}You are in {{ app_name }} app.{% endif %}
....
{% if app_name %}Subsections of {{ app_name }}: ...{% endif %}
我认为:

  • 在应用程序中声明变量(在视图或URL中),并创建上下文处理器。但我无法理解如何在给定请求对象的情况下提取该var
  • 在视图上放置装饰器。嗯,我不喜欢这个想法:太多的样板文件或重复的代码
  • #1但更好:创建在服务器重新启动时执行的方法(如上面的示例),将数据写入dict,然后上下文处理器以某种方式(如何?)获取应用程序名称并从dict中提取数据。我将方法、dict放在何处,上下文处理器如何知道视图对象在何处

  • 您可以在上下文处理器中调用
    resolve(request.path)
    来解析当前url。请参阅,尤其是
    应用程序名称

    哇。我认为它只返回一个函数的元组args&kwargs。盲点。。。谢谢啊,那是1.3。嗯。。。我不得不用inspect.stack来代替。