相关疑难解决方法(0)

如何检查是否定义了django模板变量?

我有一个django模板,可以从很多视图中使用.该模板有一个消息块,用于通知用户应该引起他们注意的任何事情.是否发送消息取决于视图.某些视图可能会向message模板发送变量,而其他视图可能不会.

view_1:
    message = "This is an important message"
    render_to_response("my_template.html", 
                       {'message':message, 'foo':foo, 'bar':bar},
                       context_instance = RequestContext(request))

view_2:
    message = "This is an important message"
    render_to_response("my_template.html", 
                       {'foo':foo, 'bar':bar},
                       context_instance = RequestContext(request))
Run Code Online (Sandbox Code Playgroud)

在模板中,我检查message变量并包括如下块:

base_template.html:
    ....
    {% block main_body %}
         {% block messages %}
         {% endblock %}
         {% block content %}
         {% endblock %}
    {% endblock %}
    ....

 my_template.html:
     {% extends base_template.html %}
     ....
     {% if message %}
          {% block messages %}
              <div class='imp_msg'>{{ message }} </div>
          {% endblock …
Run Code Online (Sandbox Code Playgroud)

django django-templates

39
推荐指数
3
解决办法
5万
查看次数

在if条件中调用块:django模板

我一直试图在django模板中调用if条件中的块.

我有一个base template.我有许多其他模板可以扩展基本模板.我在基本模板中定义了一个块:

{% block test_block %}Test{% endblock %}
Run Code Online (Sandbox Code Playgroud)

然后我想在其他模板中的某个条件上覆盖此块.如果条件失败,则不应覆盖该块.这是我写的东西:

{% if test_value %}{% block test_block %}Development{% endblock %}{% endif %}
Run Code Online (Sandbox Code Playgroud)

这实际上(或可能是虚拟的)忽略了if条件.

我最后做了什么:

{% block test_block %}{% if test_value %}Development{% else %}{{ block.super }}{% endif %}{% endblock %}
Run Code Online (Sandbox Code Playgroud)

我不得不在任何地方做这样的事情.

这是最好的方法吗?这是唯一的方法吗?为什么我不能尝试我的第一种方式?或者我身边有什么错误吗?

django django-templates

29
推荐指数
1
解决办法
7245
查看次数

标签 统计

django ×2

django-templates ×2