我有以下Django模型:
class MyModel(models.Model):
[...]
parent = models.ForeignKey('self', related_name="children", null=True, blank=True)
[...]
我想要做的是计算模型的某个实例有多少父母和祖父母。也就是说,如果instance_1
是instance_2
的父级,而instance_2
是instance_3
的父级,那么instance_3
的值为2(其父级,和其父母的父母。)
诀窍是我试图在查询集中执行此操作,以便根据该值进行一些过滤。
MyModel.objects.filter(??)
我该怎么做呢?
我考虑过使用annotate
和Count
,然后根据它进行过滤,但我又不知道该怎么做。