【问题标题】:Divide in Django Templates划分 Django 模板
【发布时间】:2020-02-27 11:39:17
【问题描述】:

我有一个 django 模板,我想在其中将一个 td 组件除以另一个,我该怎么做?

  {% for i in query %}
        <tr>


            <td class="align-middle">{{ i.pending_docket_list.sales_order.owner }}</td>
            <td class="align-middle">{{ i.pending_docket_list.sales_order.pk }}</td>
            <td class="align-middle">{{ i.pending_docket_list.sales_order.flow }}</td>
            <td class="align-middle">{{ i.pending_docket_list.sales_order.kit.components_per_kit }}</td>
            <td class="align-middle">{{ i.pending_docket_list.sales_order.quantity }}</td>
            <td class="align-middle">{{ i.pending_docket_list.sales_order.is_allocated }}</td>
            <td class="align-middle">{{ i.pending_docket_list.sales_order.created_on }}</td>

       </tr>
        {% endfor %}

我想做这样的事情:

    <td class="align-middle">{{ divide i.pending_docket_list.sales_order.quantity i.pending_docket_list.sales_order.kit.components_per_kit }}</td>

但是当我这样做时,我收到以下错误:

第 42 行的块标记无效:“divide”,预期为“empty”或“endfor”。 您是否忘记注册或加载此标签?

我该怎么做?

【问题讨论】:

  • 请不要。业务逻辑应该在 view 中处理。不在模板中。该模板用于渲染逻辑。

标签: django django-templates


【解决方案1】:

我为此使用了 custom_tag:

custom_tag.py

from django import template

register = template.Library()

@register.simple_tag
def multiply(a, b):
    return a * b


@register.simple_tag
def divide(a, b):
    return int(a / b)

在模板中调用它

HTML

{% load custom_tags %}

{% for i in query %}
        <tr>
            <td class="align-middle">{% divide i.pending_docket_list.sales_order.quantity i.pending_docket_list.sales_order.kit.components_per_kit %}</td>

【讨论】:

    猜你喜欢
    • 2012-01-16
    • 2011-09-14
    • 2021-01-03
    • 2023-03-14
    • 1970-01-01
    • 1970-01-01
    • 2012-10-03
    • 1970-01-01
    • 2018-08-26
    相关资源
    最近更新 更多