Python Django代理模型返回父模型
我对django 1.6.5有一个奇怪的问题 在distribution.models中,我有: 怎么会这样Python Django代理模型返回父模型,python,django,proxy,Python,Django,Proxy,我对django 1.6.5有一个奇怪的问题 在distribution.models中,我有: 怎么会这样 >>来自distribution.models导入代理1、代理2 >>>类型(Proxy1.objects.first()) >>>类型(Proxy2.objects.first()) 你知道去哪里寻找原因吗?经过长时间的搜寻,我终于找到了罪犯。django money包中的MoneyField在模型管理器上执行了一些黑魔法,它以某种方式破坏了为代理模型返回正确模型类的过程。我提出了一
>>来自distribution.models导入代理1、代理2
>>>类型(Proxy1.objects.first())
>>>类型(Proxy2.objects.first())
你知道去哪里寻找原因吗?经过长时间的搜寻,我终于找到了罪犯。django money包中的MoneyField在模型管理器上执行了一些黑魔法,它以某种方式破坏了为代理模型返回正确模型类的过程。我提出了一个问题: 我通过手动覆盖代理类上的“objects”属性解决了一个简单的解决方法,如下所示:
class ProxyModel(SomeModelWithMoneyField):
# This fixes django-money that would else return parent objects
objects = models.Manager()
class Meta:
proxy=True
所有Proxy1和Proxy2对象上的类型是否相同?(不仅仅是
第一个)?嗯,你试过重新启动shell吗?我很想知道你的对象是如何实例化的。@AamirAdnan是的,刚刚尝试了一个新的shell。。。没有帮助…@DavidW。所有型号在django文件管理器中使用其标准的\uuuuu init\uuuuu
版本。Titusz thx对于这个问题/答案,您可以节省我的时间;)
>>> from distribution.models import Proxy1, Proxy2
>>> type(Proxy1.objects.first())
<class 'core.models.Book'>
>>> type(Proxy2.objects.first())
<class 'distribution.models.Proxy2'>
class ProxyModel(SomeModelWithMoneyField):
# This fixes django-money that would else return parent objects
objects = models.Manager()
class Meta:
proxy=True