Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在django中查询不同年份_Django - Fatal编程技术网

如何在django中查询不同年份

如何在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(

我的模型有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(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 date
items=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()
可能工作得更好,因为它将排序到第二个,因为它将比较整个字段。