Django模型继承:如何检索记录?

Django模型继承:如何检索记录?,django,inheritance,Django,Inheritance,我有这些Django型号: class Base(models.Model): name = models.CharField(max_length=255) class Restaurant(Base): pass class Hotel(Base) pass class Message(models.Model) text = models.TextField() parent = models.ForeignKey(Base, on_delet

我有这些Django型号:

class Base(models.Model):
    name = models.CharField(max_length=255)

class Restaurant(Base):
    pass

class Hotel(Base)
    pass

class Message(models.Model)
    text = models.TextField()
    parent = models.ForeignKey(Base, on_delete=models.CASCADE)
我想设置一个查询来检索关于酒店的所有留言。但如何做到这一点呢

Message.objects.filter(has_attr("Hotel"))

显然,这不起作用,但类似的东西正是我想要的。

继承的模型从子对象到父对象有一个隐式的
OneToOneField
。默认情况下,这种反向关系的相关名称是类的名称,因此
hotel

因此,对于给定的
父对象
,我们可以通过以下方式检查是否存在
酒店
对象:

Message.objects.filter(parent__hotel__isnull=False)

Message.objects.filter(parent\uu hotel\uu isnull=False)
Message.objects.filter(parent\uu hotel\uu isnull=False)
?就是这样!!谁知道会这么简单?!你能加上这个作为回答来接受它吗?