python - django 模板里如何多个值相加?
PHP中文网
PHP中文网 2017-04-18 10:30:19
0
2
491

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中文网

认证0级讲师

全員に返信(2)
巴扎黑

あなたが述べたニーズに基づいて、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
Ty80

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

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!