{% block content %}
    {% for blog_dict in blogs|sort(reverse=True,attribute='date') if ((not file_name_filter) or blog_dict.filename==file_name_filter) and ((not category_filter) or blog_dict.category==category_filter) %}
        <div id="post{{blog_dict.post_number}}-{{blog_dict.link_name}}">
            {{blog_dict.date.strftime("%Y-%m-%d")}}
            <a href="/posts/{{blog_dict.filename}}"><h1>{{blog_dict.heading}}</h1></a>
            <!-- Place this tag where you want the +1 button to render -->
            <div class="g-plusone" data-href="/posts/{{blog_dict.filename}}"></div>
            {{blog_dict.post|safe}}
        </div>
        <br />
        <br />
        <br />
        <img src="/images/page_divider.gif"><br />
    {% endfor %}
{% endblock %}
如您所见,表达式变得混乱:
{% for blog_dict in blogs|sort(reverse=True,attribute='date') if ((not file_name_filter) or blog_dict.filename==file_name_filter) and ((not category_filter) or blog_dict.category==category_filter) %}
我尝试的另一个选项是在循环中放置两个嵌套的 if 语句来处理两个过滤器,但是嵌套变得很大。
什么是最优雅的?