我正在尝试将上下文(single_well_info
)注入我的 base.html 中。通过 contextual_main.html
views.py
class ContextualMain_DetailView(DetailView):
template_name = 'contextual_main.html'
context_object_name = 'single_well_info'
model = models.WellInfo
context_processor.py
from contextual.views import ContextualMain_DetailView
def add_context_to_base(request):
return {'single_well_info': # context instance}
调用ContextualMain_DetailView.as_view()
时,会将模型类实例single_well_info
注入 contextual_main_html
我决定创建一个context_processor
,以将完全相同的上下文注入 base.html
如何修改我的context_processor.py以在single_well_info
内获得完全相同的模型类实例ContextualMain_DetailView
?
答案 0 :(得分:0)
一个可行的解决方案,您可以在base.html中定义一个integers
,然后可以在子模板block
中对其进行扩展,然后可以使用相同的模型实例。作为参考,可以在https://docs.djangoproject.com/en/1.7/topics/templates/#template-inheritance
因此,假设您需要在base.html中使用contextual_main.html
,因为您希望将其显示为页面标题,并且页面标题是在base.html中定义的。做这样的事情:
base.html:
single_well_info
contextual_main.html:
{% block title %} My Title {% endblock %}
现在,您可以从其子模板覆盖{% extends 'base.html' %}
{% block title %} {{ single_well_info }} {% endblock %}
中的任何内容,并且可以访问该上下文变量。您不必触摸context_processors.py!