Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.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
如何在django中添加动态基础模板?_Django_Django Templates_Django Views - Fatal编程技术网

如何在django中添加动态基础模板?

如何在django中添加动态基础模板?,django,django-templates,django-views,Django,Django Templates,Django Views,假设我有一个base.html模板。在base.html中,模板包含菜单栏、固定页脚和内容块。 例如: base.html 如何在数据库中获取此图像并在扩展到系统所有页面的base.html中显示的视图?可以在为每个视图返回的上下文中包含图像url。例如,您可以使用short函数 您还可以使用直接在模板中返回url您可以在为每个视图返回的上下文中包含图像url。例如,您可以使用short函数 您还可以使用直接在模板中返回url,而不必在每个视图中使用get_context_数据。 django中

假设我有一个base.html模板。在base.html中,模板包含菜单栏、固定页脚和内容块。 例如:

base.html


如何在数据库中获取此图像并在扩展到系统所有页面的base.html中显示的视图?

可以在为每个视图返回的上下文中包含图像url。例如,您可以使用short函数


您还可以使用直接在模板中返回url

您可以在为每个视图返回的上下文中包含图像url。例如,您可以使用short函数


您还可以使用直接在模板中返回url,而不必在每个视图中使用get_context_数据。 django中有一个上下文处理器,专门为web应用程序的每个页面提供上下文。 因此,在你的情况下,这将是:

# context_proccesors.py

from .models import Orgao

def orgao_logo(request):
    orgao = Orgao.objects.filter(name='somename') # or whatever object you need
    return {'logo':orgao.logo}
然后,您需要将此上下文处理器添加到settings.py:

#settings.py

    TEMPLATES = [
        {
            'BACKEND': 'django.template.backends.django.DjangoTemplates',
            'DIRS': [TEMPLATES_DIR],
            'APP_DIRS': True,
            'OPTIONS': {
                'context_processors': [
                    ....
                    'context_processors.orgao_logo',
                ],
            },
        },
    ]
最后,您可以通过上下文关键字在模板中使用它:

<img src="{{logo.url}}">

您不必在每个视图中都使用get\u context\u数据。 django中有一个上下文处理器,专门为web应用程序的每个页面提供上下文。 因此,在你的情况下,这将是:

# context_proccesors.py

from .models import Orgao

def orgao_logo(request):
    orgao = Orgao.objects.filter(name='somename') # or whatever object you need
    return {'logo':orgao.logo}
然后,您需要将此上下文处理器添加到settings.py:

#settings.py

    TEMPLATES = [
        {
            'BACKEND': 'django.template.backends.django.DjangoTemplates',
            'DIRS': [TEMPLATES_DIR],
            'APP_DIRS': True,
            'OPTIONS': {
                'context_processors': [
                    ....
                    'context_processors.orgao_logo',
                ],
            },
        },
    ]
最后,您可以通过上下文关键字在模板中使用它:

<img src="{{logo.url}}">

这样,每次创建一个新页面时,我都必须将标记添加到模板中,或者添加一个视图来呈现每个创建页面的图像。我只想这样做一次,不管页面大小。是否有任何方法可以将图像呈现到base,以及从base.html扩展的所有页面继承此图像?您可以创建一个简单标记,或者如果还需要呈现某些内容,可以创建一个包含标记,并将其添加到base.html。这样,每次创建新页面时,我都必须将标记添加到模板中,或为每个创建的页面呈现图像的视图。我只想这样做一次,不管页面大小。是否有任何方法可以将图像呈现到base,以及从base.html扩展的所有页面继承此图像?如果还需要呈现某些内容,可以创建一个简单标记或包含标记,然后将其添加到base.htmlImpressive。这正是我需要的。我不知道。非常感谢您的帮助。我在应用程序文件夹或项目文件夹中创建context_proccessors.py文件的位置?@BInjalPatel惯例是在与manage.py文件相同的级别上创建context_proccessors文件夹。在该文件夹中,您可以放置some_proccesor.py文件。然后在settings.py中引用它,如我的回答中所示。我得到的错误如下:modulenofounderror位于/No module name'context\u processors'@BInjalPatel put empty uu init\uuuuu.py的context\u processors文件夹中。并确保文件夹位于projectImpressive的根目录中。这正是我需要的。我不知道。非常感谢您的帮助。我在应用程序文件夹或项目文件夹中创建context_proccessors.py文件的位置?@BInjalPatel惯例是在与manage.py文件相同的级别上创建context_proccessors文件夹。在该文件夹中,您可以放置some_proccesor.py文件。然后在settings.py中引用它,如我的回答中所示。我得到的错误如下:modulenofounderror位于/No module name'context\u processors'@BInjalPatel put empty uu init\uuuuu.py的context\u processors文件夹中。并确保文件夹位于项目的根目录中