Django查询从DateTimeField获取日期

时间:2016-04-22 12:32:11

标签: python mysql django

我在数据库中保存了一些订单,我想从订单中检索一天,所以我这样做了:

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

但是我收到了这个错误: django.db.utils.OperationalError:(1052,"列' date_added'在字段列表中不明确"),我的订单模型的字段为date_added。

我的模特:

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

任何解决方案?

1 个答案:

答案 0 :(得分:2)

可能发生该错误,因为该SQL中还有另一个名为.extra(select={'day':'day(app_order.date_added)'})的字段:例如,相关的表可能具有相同的字段。

您可以尝试将表名前置到字段中:

app_order

假设表名为SELECT COUNT(*) FROM blog_entry WHERE blog_entry.blog_id = blog_blog.id

详细了解Django的额外方法:https://docs.djangoproject.com/en/1.9/ref/models/querysets/#extra

特别是,请查看有关获取Blog对象计数的部分:

blog_blog

请注意使用表名{{1}}。

更多参考:

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