如何让 Django values_list 显示覆盖的 return 值而不是实际值?
How do I get Django values_list to return value of display override and not the actual value?
我注意到当调用 values()
或 values_list()
一个查询集时 returns 字段中的正常值而不是我想要的显示值。有没有办法在创建作为查询集列表列表的结果时操纵字段的显示值?
class FooBar(models.Model):
...
foo_bar = models.CharField(_("foo"), choices=[(1, 'foo'), (2, 'bar')])
def get_foo_bar_display(self):
return "something"
def get_foobar(user):
foobar = FooBar.objects.filter(user=user).values_list(.., 'foo_bar')
foobar = list(map(list, foobar))
return foobar
它总是 returns foo_bar 原始值而不是显示值。
您的一个解决方法是使用 .only()
查询集方法获取仅包含某些选定字段(get_x_display
正常工作所需的字段)的模型实例。
从那里开始,您可以像往常一样在模型上调用 get_x_display
。
我注意到当调用 values()
或 values_list()
一个查询集时 returns 字段中的正常值而不是我想要的显示值。有没有办法在创建作为查询集列表列表的结果时操纵字段的显示值?
class FooBar(models.Model):
...
foo_bar = models.CharField(_("foo"), choices=[(1, 'foo'), (2, 'bar')])
def get_foo_bar_display(self):
return "something"
def get_foobar(user):
foobar = FooBar.objects.filter(user=user).values_list(.., 'foo_bar')
foobar = list(map(list, foobar))
return foobar
它总是 returns foo_bar 原始值而不是显示值。
您的一个解决方法是使用 .only()
查询集方法获取仅包含某些选定字段(get_x_display
正常工作所需的字段)的模型实例。
从那里开始,您可以像往常一样在模型上调用 get_x_display
。