如何在django查询集中为列名写别名。
例如在mysql中:
select m as n, b as a from xyz
如何在django查询集中执行此操作?
models.Table.objects.all().values('m', 'b)
任何帮助都非常感激。
答案 0 :(得分:8)
虽然之前使用extra(select={'n':'m','a':'b'})
可以做到这一点,但我同意这应该是values()
本身的一部分。
为此,在Alex的票证的启发下,我just posted patch添加了此功能。我希望你会发现它很有用!
答案 1 :(得分:3)
你在评论中的理由毫无意义。模型中的每个字段在数据库中都有自己的列,并且从不存在将它们混合的危险。您当然可以告诉字段使用与字段名称不同的列名称:
myfield = models.CharField(max_length=10, db_column='differentname')
但我不知道这是否会对你有所帮助,因为我仍然不知道你的问题是什么。
答案 2 :(得分:1)
我认为这是不可能的,所以我已经为要添加的功能提出了一张票,我认为能够做到这一点有一些好处。请参阅门票了解更多信息。
答案 3 :(得分:0)
我真的无法理解你想要做什么,但听起来你正在寻找的是extra queryset方法。对于大多数用途,这与AS在sql中的行为方式相同。