给定一个指向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()文件 “C:\ AA \ AA \ ENV \ LIB \站点包\ Django的\ DB \型号\域\ related_descriptors.py” 第505行,在__call__manager = getattr(self.model, kwargs.pop(管理员)) KeyError:u'manager'
答案 0 :(得分:2)
您尝试将相关密钥用作可调用对象,它会返回一个模型管理器,以便您可以使用all
qs = placerating.theplace.upperlevelplaces.all()