我有一個基本的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