我有形式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