在Django模板中定义并插入年龄 [英] define and insert age in django template

查看:68
本文介绍了在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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆