Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django的外籍钥匙。如何正确创建模型_Python_Django_Model - Fatal编程技术网

Python Django的外籍钥匙。如何正确创建模型

Python Django的外籍钥匙。如何正确创建模型,python,django,model,Python,Django,Model,我是Django的新手,我正在尝试为我正在开发的网站创建一个模型。到目前为止,我知道如何实现我想要的一切,但有一件事我不能完全理解。因此,在模型中,我的想法如下: 一个类“类”,可以有尽可能多的“老师”和“学生”的管理员想要的。我已经用外键玩了一段时间,但我只能设法将一个学生和老师与一个班级关联,并且每当我想显示“班级”信息时,都没有学生或老师可以显示 from django.db import models from datetime import datetime # Create your

我是Django的新手,我正在尝试为我正在开发的网站创建一个模型。到目前为止,我知道如何实现我想要的一切,但有一件事我不能完全理解。因此,在模型中,我的想法如下:

一个类“类”,可以有尽可能多的“老师”和“学生”的管理员想要的。我已经用外键玩了一段时间,但我只能设法将一个学生和老师与一个班级关联,并且每当我想显示“班级”信息时,都没有学生或老师可以显示

from django.db import models
from datetime import datetime
# Create your models here.

LANGUAGE_CHOICES = (
('english','ENGLISH'),
('spanish', 'SPANISH'),
('german','GERMAN'),
('french','FRENCH'),
('portuguese','PORTUGUESE'),
)

class Clase(models.Model):
    name = models.CharField(max_length=300)
    language = models.CharField(max_length=10, choices=LANGUAGE_CHOICES, default='english')

    def __str__(self):
        return self.name


class Student(models.Model):
    name = models.CharField(max_length=300)
    clase = models.ForeignKey(Clase, on_delete=models.CASCADE)


    def __str__(self):
        return self.name


class Teacher(models.Model):
    name = models.CharField(max_length=300)
    total_earnings = models.IntegerField()
    month_earnings = models.IntegerField()
    clase = models.ForeignKey(Clase, on_delete=models.CASCADE)


    def __str__(self):
        return self.name

由于一个
Clase
可以有“想要多少”的“教师”和“学生”,因此定义与
许多领域的关系可能是有意义的。我假设一个
老师
和一个
学生
可以有一个以上的
课程

class Clase(models.Model):
    name = models.CharField(max_length=300)
    language = models.CharField(max_length=10, choices=LANGUAGE_CHOICES, default='english')
    students = models.ManyToManyField(Student)
    teachers = models.ManyToManyField(Teacher)

    def __str__(self):
        return self.name

然后,您可以删除
学生
教师
型号上的外键。现在,当你在管理中编辑一个
课程时,你应该能够添加你想要的学生和教师数量

这里不应该说谢谢,但我无法避免。它工作得很好,非常感谢!我的荣幸!:)