.filter跨抽象模型类中的表 - Django

时间:2009-09-14 06:13:21

标签: django django-models

我的模特就像这样

class Foo(models.Model):
    user = models.ForeignKey(User)

    class Meta:
        abstract = True

class Bar(Foo):
    bar_thing = models.CharField(..)

class Baz(Foo):
    baz_thing = models.CharField(..)

我想得到所有有用户_username ='hello'的bar,baz(和其他FooSubclasses)

我做Foo.objects.filter(user__username = 'hello')。这给了我一个错误'Options' object has no attribute '_join_cache'

我该怎么做?

1 个答案:

答案 0 :(得分:4)

抽象模型不作为数据库中的表存在,无法查询。您可能需要在Bar和Baz模型上分别编写两个查询,然后合并结果。

您可以将其包装到Foo类中的方法中以用于组织目的。