【问题标题】:Django: Get related model class from parent model classDjango:从父模型类获取相关模型类
【发布时间】:2014-11-02 07:16:27
【问题描述】:

在 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 模型类,例如,编写一个创建学生的 @classmethod(例如,classroom.create_student(name)。

【问题讨论】:

    标签: python django django-models


    【解决方案1】:

    两种方式:

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

    classroom = models.ForeignKey("Classroom")
    

    然后删除导入行:

    from classroom_model import Classroom
    

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-09-28
      • 1970-01-01
      • 2014-12-05
      • 2013-02-17
      • 2012-05-07
      • 2011-04-05
      • 1970-01-01
      • 2016-11-06
      相关资源
      最近更新 更多