代码之家  ›  专栏  ›  技术社区  ›  Alouani Younes

django中的相关模型查询

  •  1
  • Alouani Younes  · 技术社区  · 7 年前

    我有如下相互关联的树模型:

    第一节课是关于这个项目的基本信息。

    class Project(models.Model):
        customer =  models.ForeignKey(
                                    settings.AUTH_USER_MODEL,
                                    on_delete = models.CASCADE,)
        title = models.CharField(max_length=200)
        pub_date = models.DateTimeField(default=timezone.now)
    

    第二个类用于注册与每个项目相关的类别。

    class ProjectCategory(models.Model):
        project = models.ForeignKey(
                                    Project,
                                    on_delete = models.CASCADE)
        projectCategory = models.ForeignKey(
                                    Category,
                                    on_delete=models.CASCADE)
    

    最后一个模型指示项目的位置。

    class ProjectLocation(models.Model):
        project = models.ForeignKey(
                                    Project,
                                    on_delete = models.CASCADE)
        projectLocation = models.ForeignKey(
                                    Location,
                                    on_delete=models.CASCADE)
    

    我试图在模板中呈现项目列表。 我想显示与每个项目相关的信息(类别和位置)。 如何才能做到这一点? 使用查询项目。对象。all()不允许我访问“projectLocation”和“projectCategory”字段。

    1 回复  |  直到 7 年前
        1
  •  2
  •   Rana El-Garem    7 年前

    添加一个 related_name 到您的外键字段,您可以使用此名称访问它们。

    例如ProjectCategory:

    class ProjectCategory(models.Model):
        project = models.ForeignKey(Project, related_name='categories')
    

    因此,现在您可以执行以下操作: project.categories.all()