【问题标题】:How do I filter an object by the child class name in Django?如何在 Django 中按子类名过滤对象?
【发布时间】:2014-03-31 10:46:08
【问题描述】:

我有以下课程:

class Zoo(models.Model):
    name ...
    address ...
    animal = models.ManyToManyField('Animal', related_name='animals')


class Animal(TypedModel):
    name ...
    description ...

class Tiger(Animal):
    ....

class Lion(Animal):
    ....

如何按班级名称过滤动物园的狮子?问题是因为有时我只想过滤带有狮子的动物园......

注意:在我的上下文中,我不知道 Animal 的名称或 ID,只知道模型名称。

【问题讨论】:

  • 你在使用 django-typed-models 吗?
  • 您找到解决方案了吗?

标签: django django-models django-orm


【解决方案1】:

从我在 django-typed-models 中看到的基本模型 Animal 包含一个类型字段,您可以在该字段上进行过滤。 如果你只想要动物园里的狮子,你应该这样做: zoo.animals.filter(type='myapp.lion')

【讨论】:

  • 不工作...'ReverseManyRelatedObjectsDescriptor'对象没有属性'filter'
猜你喜欢
  • 2019-08-23
  • 1970-01-01
  • 2014-05-05
  • 2017-08-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-24
  • 2020-11-01
相关资源
最近更新 更多