我在数据库中保存了一些订单,我想从订单中检索一天,所以我这样做了:
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)
任何解决方案?
答案 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