ホームページ  >  に質問  >  本文

python - django 模板里如何多个值相加?

models.py

class Order(models.Model):
    price_a = models.PositiveIntegerField(blank=True, null=True)
    price_b = models.PositiveIntegerField(blank=True, null=True)
    price_c = models.PositiveIntegerField(blank=True, null=True)

views.py

def order_list():
    order_list = Order.objects.all()
    return render(request, 'orders/order_list.html', {'order_list': order_list})

模板:

{% for order in order_list %}
    price_* 可能是 None
    这里想输出 price_a + price_b + price_b 的总和
    下面这个写法没有用:
    {{ price_a|add:price_b|add:price_c }}
{% endfor %}

求解,或者有没有其他的实现方法?

PHP中文网PHP中文网2741日前481

全員に返信(2)返信します

  • 巴扎黑

    巴扎黑2017-04-18 10:32:19

    あなたが述べたニーズに基づいて、2 つの解決策があります:
    1. views.py で計算し、それをテンプレートに転送します。
    具体的な実装方法は次のとおりです。

    ステップ 1: プロジェクトのアプリ ディレクトリに新しい templatetags フォルダーを作成し (このフォルダーは views.py および models.py と同じレベルにあります)、このフォルダーに新しい __init__.py および add_value.py ファイルを作成します。ディレクトリ構造は次のとおりです:

    リーリー

    ステップ 2: __init__.py ファイルと add_value.py ファイルを編集します。 __init__.py ファイルは空でもかまいません。add_value.py ファイルの内容は次のとおりです。 リーリー

    ステップ 3: views.py 内:

    リーリー

    ステップ 4: order_list.html テンプレートに

    を追加する {% load add_value %},然后使用<p>{{ order_list|add_value }}</p>最終的にはあなたのニーズを達成できるはずです。

    返事
    0
  • PHP中文网

    PHP中文网2017-04-18 10:32:19

    ビューで直接処理して、テンプレートで参照することはできませんか?

    返事
    0
  • キャンセル返事