我有一个基本的Django模型和代理它的子模型。他们重写所有方法。我需要迭代基础模型的所有实例(即for i in BaseModel.objects.all()
),但能够调用其相应代理类的方法,而不是在基类中声明的占位符方法。Django - 获取基本模型的实例作为相应的代理模型
我该如何解决这个问题?实际上我有一个模型字段,可以确定哪个代理模型对应于每个特定实例。也许我可以利用它并以某种方式将基类投射到子类中?我很茫然。
编辑:我看了一下this question,并设法通过写入self.__class__
来改变这个类。但是,使用Django可以安全吗?
我不知道我明白了...你能发表示范代码吗? – XORcist 2012-08-07 21:05:11
我的情况实际上与[此问题]非常相似(http://stackoverflow.com/questions/7526088/django-model-polymorphism-with-proxy-inheritance?rq=1)。虽然我不知道我得到的模式,他们改变“自我.__ class__”的价值。 – egasimus 2012-08-07 21:15:46