在Django模板中定义并插入年龄 [英] define and insert age in django template
本文介绍了在Django模板中定义并插入年龄的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个模型,视图和模板:
i have a mdel, view and template:
模型
class Peoples(models.Model):
l_name = models.CharField(max_length=50)
f_name = models.CharField(max_length=50)
m_name = models.CharField(max_length=50)
tab_number = models.CharField(max_length=5)
birthday = models.DateField(null=True, blank=True)
post = models.CharField(max_length=250, blank=True)
workplace = models.ForeignKey(Workplace, null=True, blank=True)
skill = models.CharField(max_length=20, blank=True)
dopuska = models.TextField(blank=True)
srok_dopuskov = models.DateField(null=True, blank=True)
photo = models.ImageField(upload_to='img',blank=True)
class Meta:
ordering = ('l_name',)
def __unicode__(self):
return self.l_name
def age(self):
import datetime
return int((datetime.datetime.now() - self.birthday).days / 365.25 )
age = property(age)
视图
def view_persone(request, tab_number):
return direct_to_template(request, 'person.html', {
'persone': Peoples.objects.filter(tab_number=tab_number),
})
模板
{% for person in persone %}
Возраст: <b>{{ person.age }}</b>
{% endfor %}
但是模板中应为年龄的字段为空.为什么?
But the field in template where should be an age is empty. why?
推荐答案
您需要做
def age(self):
import datetime
return int((datetime.date.today() - self.birthday).days / 365.25 )
因为您的生日是一个DateField.
as your birthday is a DateField.
这篇关于在Django模板中定义并插入年龄的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文