【发布时间】:2018-05-01 11:39:22
【问题描述】:
我有三个模型 Student、Question 和 StudentAndQuestion
class Student(models.Model):
class Meta:
verbose_name_plural = "Students"
name = models.CharField(max_length=150)
surname = models.CharField(max_length=150)
code = models.CharField(max_length=10)
# group = models.ForeignKey(Group,on_delete=models.CASCADE)
points = models.IntegerField(default=0)
class Question(models.Model):
class Meta:
verbose_name_plural = "Questions"
text = models.CharField(max_length=1500)
variants = models.CharField(max_length=1500)
theme = models.OneToOneField(Theme, on_delete=models.CASCADE)
anwser = models.CharField(max_length=1500)
class StudentAndQuestion(models.Model):
question = models.OneToOneField(Question,on_delete=models.CASCADE)
student = models.OneToOneField(Student,on_delete=models.CASCADE)
is_learned = models.BooleanField(default=0)
points = models.IntegerField(default=0)
我希望 Django 在我创建新的学生实例时填写 StudentAndQuestion(例如,为所有问题创建行并将点设置为零)并且当我创建新的问题实例时将其添加到所有旧学生
【问题讨论】:
-
你确定 OneToOneField,这意味着当一个
studentAndQuestion实例有一个question时,其他实例不再能够拥有它。ForeignKey是让它工作所需的 + Django Signal -
@Lemayzeur 我已经注意到了,谢谢!
-
那么它现在工作了吗?
-
@Lemayzeur 是的 :)
标签: python django database-design