如何在django中查询不同年份
我的模型有creation\u date=models.datetime字段(auto\u now\u add=True) 我不知道如何在本专栏的数据库中查询不同年份的数据如何在django中查询不同年份,django,Django,我的模型有creation\u date=models.datetime字段(auto\u now\u add=True) 我不知道如何在本专栏的数据库中查询不同年份的数据 如果您有任何想法,我们将不胜感激,感谢您在模型存储模型时提供的。DateTimeField格式通常为“YYYY-MM-DDTHH:MM:SS”,您可以使用筛选方法查询该年份的所有特定记录 下面是一个例子: models.py from django.db import models class Items(
如果您有任何想法,我们将不胜感激,感谢您在模型存储
模型时提供的。DateTimeField
格式通常为“YYYY-MM-DDTHH:MM:SS”,您可以使用筛选方法查询该年份的所有特定记录
下面是一个例子:
models.py
from django.db import models
class Items(models.Model):
name = models.CharField(max_length=100)
creation_date = models.DateTimeField(auto_now_add=True)
views.py
from Items.model import Items
def items_by_creationdate_view(request):
items = Items.objects.filter(creation_date__year=2013)
return render("template.html", {"items": items })
template.html
{% for x in items %}
{{x.name}}<br/>
{{x.creation_date }}<br/><br/>
{% endfor %}
{items%%中x的%
{{x.name}}
{{x.creation_date}
{%endfor%}
不确定这是否是最好的方法,但您可以尝试:
set([instance.creation\u date.year,例如Model.objects.all()])
您好,谢谢您的回答,我想要的是获得所有不同的年份,例如数据库有50行,10行是在2010年创建的,30行是2011年,10行是2013年。结果应该是[2010、2011、2013]使用.all()
和order by creation\u dateitems=items.objects.all().order\u by(creation\u date)
抱歉错过了引号items=items.objects.all().order\u by('creation\u date')
items=items.objects.extras(select={creation\u date:'year(creation\u date)},order\u by=['creation\u date\u year']和items=items.objects.all()。实际上,.all()
可能工作得更好,因为它将排序到第二个,因为它将比较整个字段。