我有表格
amount = forms.IntegerField(label='Amount :',help_text='enter price')
和模板html
{% if contact_data.amount %}
<h4> Amount : {{ contact_data.amount }}</h4>
我想打印模板html'amount'和'amount'* 1,75和'amount'/0.45?如何最好的解决方案
答案 0 :(得分:2)
我不确定我是否理解这个问题......但如果你想要做的是显示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>
答案 1 :(得分:0)
如果您想在视图中执行此操作并使用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 }}
。