我有三个由外键链接的模型:
class One(models.Model):
...
class Two(models.Model):
one = models.ForeignKey(One)
class Three(models.Model):
two = models.ForeignKey(Two)
我能做到:
one.two_set.all()
从'One'实例访问所有相关的'Two'实例。
如何构建自定义管理器以从“One”实例访问所有“三个”实例?
我需要这个,因为我有一个框架,它根据一个实例和一个管理器构建一个HTML表:
create_child_table(instance, manager_name)
所以,如果我可以在实例上使用'three_set'管理器,那就没问题了。
解 我最后添加了一个从三到一的ForeignKey。 感谢您的回答让我想起了KISS的理念。
答案 0 :(得分:1)
您不需要经理。这样就可以了:
Three.objects.filter(two__one=one)
答案 1 :(得分:1)
您可以使用reverse relationship。您可以使用相关模型的小写名称,例如two
和three
,例如:
one_tow_three = One.objects.all().values('two','two__three')