【发布时间】:2021-09-28 10:07:16
【问题描述】:
具有以下模型的测验应用程序
from django.db import models
from classroom.models import Subject
from django.contrib.auth.models import User
# Create your models here.
class Exam(models.Model):
name = models.CharField(max_length=120)
subject = models.ForeignKey(Subject, on_delete=models.CASCADE)
number_of_questions = models.IntegerField()
required_score_pass =models.IntegerField(default=40,)
time = models.IntegerField(help_text="duration of test in minutes")
def __str__(self):
return f"{self.subject}: {self.name}"
def get_questions(self):
return self.question_set.all()
class Question(models.Model):
text = models.TextField()
exam = models.ForeignKey(Exam, on_delete=models.CASCADE)
def __str__(self):
return f"{self.exam.name}: {self.text}"
def get_answers(self):
return self.answer_set.all()
def get_correct_answers(self):
for answers in self.get_answers():
if answers.correct:
return answers.text
class Answer(models.Model):
text = models.CharField(max_length=200)
correct = models.BooleanField(default=False)
question =models.ForeignKey(Question, on_delete=models.CASCADE)
def __str__(self):
return f" question: {self.question.text}, answer: {self.text}, correct: {self.correct}"
class Result(models.Model):
exam = models.ForeignKey(Exam, on_delete=models.CASCADE)
user = models.ForeignKey(User, on_delete=models.CASCADE)
score = models.FloatField()
我想为这些相互依赖的模型创建一个表单。 也欢迎任何有关视图或模板的建议/想法。 大多数模型需要先保存,因为 ForeignKey 字段需要它们。
【问题讨论】:
-
我为以下模型创建了表单: 考试问题答案 首先我正在创建考试并保存它。使用考试模型的数据,例如 number_of_questions 和名称(考试字段名称),我正在编写一个视图,该视图创建一个循环来创建问题模型的表单实例。现在我很困惑,这是处理相互依赖的多种形式的多个模型的正确方法吗?
-
嘿@physicalattraction 你能帮我吗
标签: django django-models django-views django-forms django-templates