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 %}
求解,或者有没有其他的实现方法?
Mengikut keperluan yang anda nyatakan, terdapat dua penyelesaian:
1 Kira dalam views.py dan kemudian pindahkan ke templat
2 Seperti berikut:
Langkah pertama: Buat folder templatetags baharu dalam direktori aplikasi projek anda (folder ini berada pada tahap yang sama dengan views.py dan models.py anda), dan buat __init__.py dan add_value dalam fail py ini , struktur direktori adalah seperti berikut:
Langkah 2: Edit fail __init__.py dan add_value.py. Fail __init__.py boleh kosong Kandungan fail add_value.py adalah seperti berikut:
Langkah 3: Dalam views.py:
Langkah 4: Tambahkan
{% load add_value %}
pada templat order_list.html anda, kemudian gunakan<p>{{ order_list|add_value }}</p>
Pada akhirnya, anda sepatutnya dapat mencapai keperluan anda. Saya harap ia dapat membantu anda.
Tidakkah anda boleh mengendalikannya terus dalam paparan dan kemudian merujuknya dalam templat?