首页 > 解决方案 > *_set 来自不同应用程序的模型的属性

问题描述

我在不同的应用程序中定义了两个模型,通过多对多关系相关:

#App 1, models.py

class Parent(models.Model):
    name=models.CharField(max_lenght=10)

#App2, models.py
from App1.models import Parent

class Child(models.Model):
    parents = models.ManyToManyField(
        to = Parent,
        blank = True,
        default = None,
        related_name = 'padres'
    )

我想从父模型访问子元素。当模型在同一个应用程序中时,你可以只做child_set,但在这种情况下,它是没有定义的。有什么办法吗?

我无法在 Parent 中定义 M2M 关系,因为我在 App2 中从 App1 导入其他模型,这样做会导致循环导入。

标签: djangodjango-models

解决方案


由于您在 Child 模型中设置了相关名称,因此以下代码应该执行此操作-

parents=get_object_or_404(Parent, id=2)
childs=parents.padres.all()

推荐阅读