【问题标题】:.filter across tables in Abstract model class - Django.filter 在抽象模型类中的表 - Django
【发布时间】:2010-11-28 00:59:55
【问题描述】:

我的模型是这样的

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(..)

我想获取所有具有 user__username = 'hello' 的 bar、baz(和其他 FooSubclasses)

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

我该怎么做?

【问题讨论】:

标签: django django-models


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-04-12
    • 1970-01-01
    • 2018-08-21
    • 1970-01-01
    • 2011-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多