我正在设置 django cacheops,我遇到了一个关于酸洗我的数据的问题。
我的模型有这种结构:
class A(models.Model):
# ...
class B(models.Model):
link_1 = models.ForeignkeyField(A)
link_2 = models.ForeignkeyField(A)
link_3 = models.ForeignkeyField(A)
def get_link(self):
# function does some checks here, decides if link_1, link_2 or link_3 should be loaded
link_to_load = "link_1" # fixed for simplicity
return getattr(self, link_to_load, None)
当我使用 cacheops 时,我得到这个错误:
cannot pickle '_io.BufferedRandom' object
。当我使用 A.object.get(pk=some_pk)
而不是 getattr
时也会发生这种情况。
有人提示,如何更改我的代码以使其不会发生?