如何在django中添加动态基础模板?
假设我有一个base.html模板。在base.html中,模板包含菜单栏、固定页脚和内容块。 例如: base.html如何在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中显示的视图?可以在为每个视图返回的上下文中包含图像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文件夹中。并确保文件夹位于项目的根目录中