检索 Django 中的所有反向外键

Retrieve all reverse foreign keys in Django

给定一个指向 ThePlace 对象的特定 Placerating 对象,如何检索指向该 ThePlace 对象的所有 ThePlace 对象。

请注意 ThePlace 与其自身具有递归关系。

型号:

class ThePlace(models.Model):
    author = models.ForeignKey('auth.User')
    upperlevelplace = models.ForeignKey('self', on_delete=models.SET_NULL, null=True, related_name='upperlevelplaces')

class Placerating(models.Model):
    theplace = models.ForeignKey('ThePlace', on_delete=models.CASCADE, null=True, related_name='placeratings')

我试过这个视图:

placerating = Placerating.objects.get(pk=15)

qs = placerating.theplace.upperlevelplaces()
print(qs)

但是我收到以下错误:

qs = placerating.theplace.upperlevelplaces() File "C:\aa\aa\env\lib\site-packages\django\db\models\fields\related_descriptors.py", line 505, in __call__manager = getattr(self.model, kwargs.pop('manager')) KeyError: u'manager'

您正在尝试将相关密钥用作可调用项,它 returns 是模型管理器,因此您可以在 all 上使用

qs = placerating.theplace.upperlevelplaces.all()