以这两个模型为例(伪代码)
class House():
Pass
class Cat():
house = Foreignkey(to=House, related_name=“cats”)
现在说一下这是否是一个庞大的代码库,我不熟悉其他文件中的这些定义。我看到用“ cats”方法调用House的实例
house1.cats
我想调查一下猫的来源。但是当我对房屋的定义时,没有提到猫。我无法仅通过查看House就可以弄清这一点,而且名称并不总是像本示例那样简单(有时相关名称与类名称并不相似)。我确实使用模糊查找并在代码库中搜索related_name=cat
,这通常可以正常工作,但不适用于通过诸如
class Base(models.Model):
m2m = models.ManyToManyField(
OtherModel,
related_name="%(app_label)s_%(class)s_related",
related_query_name="%(app_label)s_%(class)ss",
)
除了通过查看每个文件手动查找关系之外,基本上不可能找出关系的模型,这在大型代码库中非常困难。我使用过Rails,因此您始终必须在两种模型中都以两种方式定义这些关系,以便易于理解。我觉得奇怪的是,在Django中,关系的两个方面都在一个模型中定义。我想念什么吗?
我的问题是,有没有办法解决这个问题?
答案 0 :(得分:0)
您应该可以致电house1.cats.model
并得到它来向您展示所引用的模型