django:使用QuerySet.values()返回Python类型?

django:使用QuerySet.values()返回Python类型?,django,django-models,Django,Django Models,我有一个自定义的字段,它将值转换为Python类型或从Python类型转换为Python类型: class MyField(models.Field): # … def to_python(self, value): # … return MyType(value) 有没有办法欺骗QuerySet.values(…)对其返回的值运行特定于字段的转换 例如,我想要这样的东西: >>> MyModel.objects.all().v

我有一个自定义的
字段
,它将值转换为Python类型或从Python类型转换为Python类型:

class MyField(models.Field):
    # …
    def to_python(self, value):
        # …
        return MyType(value)
有没有办法欺骗
QuerySet.values(…)
对其返回的值运行特定于字段的转换

例如,我想要这样的东西:

>>> MyModel.objects.all().values("my_field")
[{"my_field": MyType(…)}]
而不是当前的行为:

>>> MyModel.objects.all().values("my_field")
[{"my_field": "raw_database_value"}]

显然,我可以手动转换结果……但这有点蹩脚=\

不,这是不可能的。您可以在以下网址查看相关机票:

在这里,您将看到关于
values()
是否应该实际运行任何特定于字段的转换的讨论

由于票证标记为“需要设计决策”,您需要将其发布到,或与IRC(Freenode#django dev)上的某个人一起提交

同时,您必须手动转换原始数据库值