2016-04-22 75 views
2

得到一天,我有一些订单保存在数据库中,我想从顺序检索就在一天,所以我这样做:Django的查询从DateTimeField字段

Order.objects.all().extra(select={'day':'day(date_added)'}).values('day').order_by('day') 

但我得到这个错误: django.db。 utils.OperationalError:(1052,“字段列表中'列'date_added'不明确”),并且我的Order模型的字段为date_added。

我的模型:

class Order(models.Model): 
    user = models.ForeignKey(User, related_name="orders") 
    date_added = models.DateTimeField(default=timezone.now) 

任何解决方案?

+0

显示你的模型在你的问题 –

回答

2

该错误可能是由于该SQL中存在另一个名为date_added的字段而导致的:例如,相关表可能具有相同的字段。

你可以尝试在前面加上表名外地:

.extra(select={'day':'day(app_order.date_added)'})

假设表名是app_order

查看更多关于Django的额外方法:https://docs.djangoproject.com/en/1.9/ref/models/querysets/#extra

特别是,看看节上获得博客对象计数:

SELECT COUNT(*) FROM blog_entry WHERE blog_entry.blog_id = blog_blog.id

注意使用表名blog_blog的。

更多参考:

在字段列表中的值是不明确的错误:Column 'user_id' in field list is ambiguous

+0

谢谢你,这是解决方案 – jalanga