SQL是否有像模拟一样的Django的“get_FOO_display()”?

时间:2017-11-22 06:07:14

标签: mysql sql-server django

例如,我的某个模特中有一个字段状态:

CHOICES = (
    ('new', u'New'),
    ('old', u'Old'),
)
status = models.CharField(u'Status', max_length=10, choices=CHOICES, default=0)

如果我在SQL中键入:t1.status,我将获得new& old代替New& Old 而在django中,我可以输入:get_status_display()来获取New& Old,我怎么能在SQL中做到这一点?

1 个答案:

答案 0 :(得分:3)

在Django中,Choices元组('new', u'New')是两个项目的迭代。

元组的第一个元素将存储在数据库中,它可以是整数或只是一个字符。

第二个元素只是一个人类可读的标签,在渲染表单小部件和检索字段表示时使用。

SQL查询直接在数据库上执行,并且没有选择映射的信息,选择映射由Django ORM层处理。

所以你不能使用SQL获得元组的第二个元素。

  

如果您想使用SQL来大写输出,请参阅此处   的 post