AttributeError: 'TreeQuerySet' object has no attribute 'get_family'

AttributeError: 'TreeQuerySet' object has no attribute 'get_family'

我正在使用 django mptt,我想得到一个全家 child。 当我调用其他函数时它工作正常

例如我筛选 object 并调用函数 get_family

p = Platform.objects.filter(name__startswith='signals')
s = p.get_family()
print(s)

但出现错误

AttributeError: 'TreeQuerySet' object has no attribute 'get_family'

您的错误表明您正在尝试访问 get_family 错误的东西,或者您没有正确实现库。 只需看一眼 http://django-mptt.readthedocs.io/en/latest/models.html?highlight=get_family#get-family,您就会发现您需要扩展 MPTTModel 才能使该功能可用

get_family是模型上的方法。但正如错误所示,filter returns 一个 QuerySet - 即模型的集合。您需要选择一个来调用您的方法。

要么使用.first()方法:

p = Platform.objects.filter(name__startswith='signals').first()

或者,如果您确定只有一个平台对象匹配,请使用 get 而不是过滤器:

p = Platform.objects.get(name__startswith='signals')