0
我正在使用Django 1.6
並使用模型繼承。標題可能令人困惑,這裏是解釋;通過代理模型父代的繼承模型字段來過濾代理模型。
class ParentModel(models.Model)
class Meta:
db_table = "parent_model"
my_field=.....
class ProxyModelOfParentModel(ParentModel)
class Meta:
proxy=True
objects=CustomManager()
class InheritedModel(ParentModel)
class Meta:
db_table = "inherited_model"
my_extra_field=.....
假設這些都是我們的模型。當我嘗試在ParentModel上通過my_extra_field進行篩選時,我會這樣做;
ParentModel.objects.filter(inheritedmodel__my_extra_field='test')
但是,我想過濾代理模型,如;
ProxyModelOfParentModel.objects.filter(inheritedmodel__my_extra_field='test')
當我運行這一點,就無法找到現場inheritedmodel在代理模式。這也可能是Django中的錯誤,我不知道。不知何故,當我嘗試過濾代理模型時,django現在可以正確地構建查詢集。
爲什麼我使用代理模式而不是使用父模型,是在不同的管理員中使用代理模型。當我在管理員list_filter
中給出密鑰時,我遇到了FieldDoesNotExists
錯誤。
有沒有像我提到的過濾方法? 謝謝!