我有一个基类A.两个派生类B,C。 现在我有一个全局类女巫包含与对象A的多对多关系。
Class D:
aObjects : ManyToMany("A")
如何才能知道对象D中过滤器查询返回的真实对象
我的意思是:d.objects.get(id=5)
现在d有n个A类对象,但它们是A,B或C的混合体。
如何在查询中只获取B类型的那些。
提前致谢。
答案 0 :(得分:0)
这会对你有用吗</ p>
filter(lambda x: isinstance(x, B), d.objects.get(id=5))
答案 1 :(得分:0)
没有办法自动执行此操作。文档很清楚,没有办法告诉基类的实例它是否“实际上”是派生类的实例。
唯一要做的是在基类上定义一个字段,该字段显示它的派生类型,并在各种派生类的save()
方法中自动设置。然后你可以过滤这个字段的值。