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
错误。
有没有像我提到的过滤方法? 谢谢!