Python Django的外籍钥匙。如何正确创建模型
我是Django的新手,我正在尝试为我正在开发的网站创建一个模型。到目前为止,我知道如何实现我想要的一切,但有一件事我不能完全理解。因此,在模型中,我的想法如下: 一个类“类”,可以有尽可能多的“老师”和“学生”的管理员想要的。我已经用外键玩了一段时间,但我只能设法将一个学生和老师与一个班级关联,并且每当我想显示“班级”信息时,都没有学生或老师可以显示Python Django的外籍钥匙。如何正确创建模型,python,django,model,Python,Django,Model,我是Django的新手,我正在尝试为我正在开发的网站创建一个模型。到目前为止,我知道如何实现我想要的一切,但有一件事我不能完全理解。因此,在模型中,我的想法如下: 一个类“类”,可以有尽可能多的“老师”和“学生”的管理员想要的。我已经用外键玩了一段时间,但我只能设法将一个学生和老师与一个班级关联,并且每当我想显示“班级”信息时,都没有学生或老师可以显示 from django.db import models from datetime import datetime # Create your
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
然后,您可以删除学生
和教师
型号上的外键。现在,当你在管理中编辑一个课程时,你应该能够添加你想要的学生和教师数量这里不应该说谢谢,但我无法避免。它工作得很好,非常感谢!我的荣幸!:)