如何将模板变量传递给 Django 模板中的切片过滤器

ily*_*yew 4 python django django-templates

我正在尝试使用变量在 django 模板中切片循环

通常的方式

{% for article in module.module_article_key.module_article_category.article_category_key.all|slice:":2" %}
    {{ article.article_title }}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

需要什么

{% for article in module.module_article_key.module_article_category.article_category_key.all|slice:":module.module_article_key.module_article_count" %}
    {{ article.article_title }}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

所以我们有工作变量{{ module.module_article_key.module_article_count }}

通常这个变量给出了为这个模块存储的整数值,但是我用它来切片循环 - 没有任何反应

mre*_*han 8

您需要先转换module_article_count为字符串,然后articleSlice通过嵌套的{% with %} 制作并在slice过滤器中使用生成的模板变量,如下所示:

{% with  articleCount=module.module_article_key.module_article_count|stringformat:"s" %}
    {% with  articleSlice=":"|add:articleCount %}
        {% for article in module.module_article_key.module_article_category.article_category_key.all|slice:articleSlice %}
            {{ article.article_title }}
        {% endfor %}
    {% endwith %}
{% endwith %}
Run Code Online (Sandbox Code Playgroud)