Django延迟了jsonfield的获取

时间:2017-05-22 14:53:02

标签: python django django-models

我在查询集上使用defer。然后有时我需要直接获取延迟字段。 在Django 1.6.5中一切都很好。 但后来我升级到了Django 1.10.5。

现在,当我尝试Document.objects.defer('cached_analysis').first().cached_analysis之类的内容时,我得到了KeyError。事实证明它只发生在自定义字段jsonfield.JSONField上。 '本机' django领域工作得很好。

错误是:

File "/home/serf/dogbone/venv/local/lib/python2.7/site-packages/jsonfield/subclassing.py", line 36, in __get__
    return obj.__dict__[self.field.name]
KeyError: 'cached_analysis'

所以,我觉得jsonfield模块中没有考虑这个补丁`https://github.com/django/django/pull/6118的变化(我使用最新的2.0.1版本)。我可能错了。

我尝试使用一些魔法,比如使用覆盖的__get__方法创建CustomJSONField(jsonfield.JSONField)(试图解决问题),但在重现期间甚至没有调用此方法,所以我失败了。

0 个答案:

没有答案