Django:从父模型类获取相关的模型类

时间:2014-09-09 00:14:56

标签: python django django-models

在Django 1.7中,我无法快速找到一个简单的单行程序来从父模型中获取相关的模型类。

这两个模型通常位于不同的文件中,一个已导入另一个导致循环(即损坏)的导入。

这是一个简单的例子:

# File: classroom_model.py
from django.db import models
class Classroom(models.Model):
    class_code = models.IntegerField()

# File: student_model.py
from classroom_model import Classroom
class Student(models.Model):
    classroom = models.ForeignKey(Classroom, related_name="student_set")

```

在这里,一个愿望可能是访问Classroom中的Student模型类,例如,编写一个创建学生的@class方法(例如,classroom.create_student(name)。

1 个答案:

答案 0 :(得分:2)

两种方式:

1)最简单的方法是将ForeignKey定义中的引用从直接模型引用更改为字符串,例如:

classroom = models.ForeignKey("Classroom")

然后删除导入行:

from classroom_model import Classroom

2)另一种方法是在classroom_model.py中定义:

Student = Classroom.student_set.related.model```

这将在使用它的方法中使用。