Python 如何将代码块包括到除base.html之外的每个页面

Python 如何将代码块包括到除base.html之外的每个页面,python,django,forms,smarty,Python,Django,Forms,Smarty,我需要用表单创建一个小的侧块(它只包含一个字段和按钮),我希望除了base.html 我想做一个简单的视图函数,但也许有更好的方法可以做到这一点 我正在使用Python和Django 1.6,您可以在base.html中使用block标记,我想您正在搜索类似的内容 base.html {% block code %} {% include 'sidebar.html' %} {% endblock %} index.html {% extends base.html %} {% block

我需要用表单创建一个小的侧块(它只包含一个字段和按钮),我希望除了
base.html

我想做一个简单的视图函数,但也许有更好的方法可以做到这一点


我正在使用Python和Django 1.6,您可以在base.html中使用block标记,我想您正在搜索类似的内容

base.html

{% block code %}
 {% include 'sidebar.html' %}
{% endblock %}
index.html

{% extends base.html %}
{% block code %}
{% endblock %}
每隔一段时间 只需扩展基本html

{% extends base.html %}

您必须使用模板来完成此操作。 换句话说,尝试使用以下代码创建$DJANGO_ROOT/templates/main.html

<html>
<head>
</head>
<body>
 {% block one_field_and_a_button %}
   <input />
   <button>I am everywhere</button>
 {% endblock %}
 {% block my_custom_content %}
 {% endblock %}
</body>
<html>
最后,如果您希望有一个base.html,而它的代码部分不包含一个字段和一个按钮,那么可以执行以下操作。 假设这是$DJANGO\u ROOT/templates/base.html。它将同时替换“一个字段和一个按钮”和“我的自定义内容”。但是,在这种情况下,“一个字段”和“一个按钮”将被替换为不会显示在html代码中的空格

{% extends 'templates/main.html' %}
{% block one_field_and_a_button %} {% endblock %}
{% block my_custom_content %} 
 Hello World! This is my base.html template
{% endblock %}

希望它对你有用

一般来说,您不应该直接使用base.html,但是因为您是,而且在其他模板中更改它会非常麻烦,所以您可以做的是,在返回base.html的视图函数中,您可以向上下文添加一个布尔值,并检查布尔值以确定您使用的模板

大概是这样的:

def view_that_uses_base.html(request):
   is_base = True
   return render_to_response("base.html", {"is_base":is_base}, RequestContext(request,{}))
然后在模板中:

{% block sidebar %}
{% if is_base%}
{% else %}

#Your code here
{% endif %}
{% endblock sidebar %}

您可以在django中使用模板继承,但您的问题不够具体,无法给出具体的答案。其他模板是否继承自base.html?是的,所有模板都继承自base.html。因此,我需要将我的块放在base.html中,以便模板可以继承它,但我还需要将其从起始页中排除。因此,为了澄清,至少有一个视图直接使用base.html?他说他不希望它出现在base.html中。。。这段代码将包含在base.htmlery模板将从basr.html扩展而来,他可能意味着base.htm作为主页,这就是为什么我这样写解决方案的原因。请参阅我在问题本身下的评论:他可能意味着几件事,但问题需要更具体。是的,我同意你的看法。我在回复时没有看到你的评论。这就是为什么在我的回答中提到,“你可能正在寻找类似的东西”非常感谢,这正是我想要的
{% block sidebar %}
{% if is_base%}
{% else %}

#Your code here
{% endif %}
{% endblock sidebar %}