模型中的Char字段,经常用choices做映射。
例如'0'代替不及格,'1'代表良好等等。但是,这在显示的时候并不是很方便。
虽然Django提供了 get_xx_display
方法,但是没法放在 .values()中使用。
这里提供一种trick:借助一个临时变量来实现显示转换。
for item in Record.objects.all().values('rate','stutent'):
temp_record = Record(rate=item['rate'])
item['rate'] = temp_record.get_rate_display()
借助一个临时变量,并调用其 get_rate_display() 方法,实现显示值的获取。由于并不调用 save 方法,这个临时变量并不会访问数据库,不会影响已有数据。
网友评论