我正在Django建立一个关于新生婴儿的简单博客。对于博客文章的日期,而不是仅仅从数据库渲染中获取日期“发布于{{post.created | date}}”我想做“X days old”之类的事情,其中X = postCreated - birthDate。这是否需要在模型中完成,还是可以在模板中完成?
这是我的模特:
from django.db import models
from django.core.urlresolvers import reverse
from datetime import datetime, date
class Post(models.Model):
title = models.CharField(max_length=255)
slug = models.SlugField(unique=True, max_length=255)
description = models.CharField(max_length=255)
content = models.TextField()
published = models.BooleanField(default=True)
created = models.DateTimeField(auto_now_add=True)
updated = models.DateTimeField(auto_now=True, auto_now_add=False)
class Meta:
ordering = ['-created']
def __unicode__(self):
return u'%s' % self.title
def get_absolute_url(self):
return reverse('blog.views.post', args=[self.slug]
以下是我的观点:
def post (request, slug):
post = get_object_or_404(Post, slug=slug)
return render(request, 'blog/post.html', {'post':post})
这是我的模板:
{% extends 'base.html' %}
{% block title %}{{post.title}}{% endblock %}
{% block content %}
<article>
<header>
<h1>{{post.title}}</h1>
<p>
Posted on <time datetime="{{post.created|date:"c"}}">{{post.created|date}}</time>
</p>
</header>
<p class="description">
{{post.description}}
</p>
{{post.content|safe}}
</article>
{% endblock %}
答案 0 :(得分:2)
您可以使用timesince
过滤器在模板中执行此操作。
更新您的模板,以便在需要的地方使用以下代码。
{{post.created|timesince}}
来自文档:
timesince:将日期格式化为该日期以来的时间(例如,“4天,6 小时”)。