我有形式Django的轉換和多視圖
amount = forms.IntegerField(label='Amount :',help_text='enter price')
和模板HTML
{% if contact_data.amount %}
<h4> Amount : {{ contact_data.amount }}</h4>
我想在HTML模板打印 '量' 和 '量' * 1,75和 '量' /0.45?如何最好的解決方案
我有形式Django的轉換和多視圖
amount = forms.IntegerField(label='Amount :',help_text='enter price')
和模板HTML
{% if contact_data.amount %}
<h4> Amount : {{ contact_data.amount }}</h4>
我想在HTML模板打印 '量' 和 '量' * 1,75和 '量' /0.45?如何最好的解決方案
我不知道我理解的問題......但如果你想要做的是顯示amount
,amount * 1.75
和mount/0.45
(不知道你是否打算再次乘以這裏)。然後....有很多方法可以做到這一點。
有些人會爭辯說,你應該在視圖中計算所有這些值,然後在模板中將它們表面化。如何從一個視圖模板傳遞數據的一個例子是在這裏:
from django.shortcuts import render_to_response
def my_view(request):
# Assuming a function get_contact_data() because I don't know where you are
# getting this.
contact_data = get_contact_data()
return render_to_response(
'polls/detail.html',
{
'amount_one': contact_data.amount,
'amount_two': contact_data.amount * 1.75,
'amount_three': contact_data.amount/0.45,
}
)
# And then in the template...
<h4> Amount One: {{ amount_one }}</h4>
<h4> Amount Two: {{ amount_two }}</h4>
<h4> Amount Three: {{ amount_three }}</h4>
最簡單的辦法是在模板中處理這個問題。在這種情況下,我會建議使用django-mathfilters。這將允許你做下面的模板:
<h4> Amount : {{ contact_data.amount }}</h4>
<h4> Amount : {{ contact_data.amount|mul:1.75 }}</h4>
<h4> Amount : {{ contact_data.amount|div:0.45 }}</h4>
如果contact_data是某種類型的數據模型,你可以在模型層處理:
from django.db import models
class ContactData(models.Model):
amount = models.IntegerField()
@property
def amount_two(self):
return self.amount * 1.75
@property
def amount_three(self):
return self.amount/0.45
# And then in the template...
<h4> Amount One: {{ contact_data.amount }}</h4>
<h4> Amount Two: {{ contact_data.amount_two }}</h4>
<h4> Amount Three: {{ contact_data.amount_three }}</h4>
如果您希望在視圖中執行此操作,並且您正在使用Class-Based Views,請使用ContextMixin將預先計算的值添加到傳遞到模板的上下文中。
在views.py
:
from django.views.generic import DetailView
from .models import YourModel
class YourModelDetailView(DetailView):
model = YourModel
def get_context_data(self, **kwargs):
context = super(YourModelDetailView, self).get_context_data(**kwargs)
context['amount_mult'] = self.contact_data.amount * 1.75
context['amount_div'] = self.contact_data.amount/0.45
return context
然後在你的模板,您使用類似:{{ amount_mult }}
和{{ amount_div }}
。
您還可以使用@mfcovington指示的基於類的視圖來執行此操作 – Nizebulous