【发布时间】:2015-10-01 03:51:08
【问题描述】:
假设我有 3 个 Django 模型:
mymodela/models.py:
class MyModelA(models.Model):
my_int = models.IntegerField()
created_ts = models.DateTimeField()
mymodelb/models.py:
from mymodela.models import mymodela
class MyModelB(models.Model):
my_int = models.IntegerField()
my_a = models.ForeignKey(MyModelA, related_name="MyModelB_a")
created_ts = models.DateTimeField()
mymodelc/models.py:
from mymodelb.models import MyModelB
class MyModelC(models.Model):
my_int = models.IntegerField()
my_b = models.ForeignKey(MyModelB, related_name="MyModelC_b")
created_ts = models.DateTimeField()
我有一个名为a 的MyModelA 实例。我想计算这个查询集:
MyModelC.objects.filter(my_b__my_a=a).latest("created_ts")
但是,我需要从a 的方法中计算这个查询集。而且由于MyModelA 不导入MyModelC,我不能直接这样做。我需要遵循反向链接。但是我怎样才能按照反向链接两次来获得我需要的东西呢?
【问题讨论】:
-
为什么不能在
MyModelA方法中导入MyModelC并运行上面已经指定的查询? -
在
MyModelA中导入MyModelC会导致循环依赖。对吗? -
不 - 让我在下面发布一个示例。
标签: python django django-models django-orm