增加一个自定义的方法,注意,这里需要导入python标准模块(moduel)datetime,以及Django’s time-zone-related utilities
import datetime
from django.utils import timezone
class Task(models.Model):
......
def was_created_recently(self):
return self.create_date >= timezone.now() - datetime.timedelta(days=1)
......
获取第一个对象,最后一个对象
In [48]: from django.utils import timezone
In [49]: from task_tool.models import Task
In [50]: Task.objects.all()
Out[50]: <QuerySet [<Task: 这个是一测试任务>, <Task: 这是第二个测试任务>, <Task:
这是第三个测试任务>, <Task: 这是第四个测试任务>, <Task: 这是第五个测试任务>, <T
ask: 这是第六个测试任务>, <Task: 测试时间是否能够写入数据库>, <Task: 第八个测试
任务>, <Task: 第九个测试任务>, <Task: 第十一个测试傻笑国>, <Task: 测试任务十二>,
<Task: new title name for test task 1>]>
In [51]: Task.objects.first()
Out[51]: <Task: 这个是一测试任务>
In [52]: Task.objects.first().id
Out[52]: 90
In [53]: Task.objects.last()
Out[53]: <Task: new title name for test task 1>
In [54]: Task.objects.last().id
Out[54]: 102
获取标题以“new”开头的任务
In [55]: Task.objects.filter(title__startswith='new')
Out[55]: <QuerySet [<Task: new title name for test task 1>]>
获取今年创建的任务
In [56]: current_year = timezone.now().year
In [57]: Task.objects.filter(create_date__year=current_year)
Out[57]: <QuerySet [<Task: 这个是一测试任务>, <Task: 这是第二个测试任务>, <Task:
这是第三个测试任务>, <Task: 这是第四个测试任务>, <Task: 这是第五个测试任务>, <T
ask: 这是第六个测试任务>, <Task: 测试时间是否能够写入数据库>, <Task: 第八个测试
任务>, <Task: 第九个测试任务>, <Task: 第十一个测试傻笑国>, <Task: 测试任务十二>,
<Task: new title name for test task 1>]>
获取ID是90的任务,判断它是不是今天创建的
In [58]: t = Task.objects.get(id=90)
In [59]: t.was_created_recently()
Out[59]: False