【问题标题】:Django (Quiz/Exam app) forms for multiple table. Need help to create a form for models which are depended on each othern多个表格的 Django(测验/考试应用程序)表格。需要帮助为相互依赖的模型创建表单
【发布时间】: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


【解决方案1】:

我为以下模型创建了表单:

  • 考试
  • 问题
  • 回答

首先,我创建并保存考试。使用考试模型的数据,例如 number_of_questions 和名称(考试字段名称),我正在编写一个视图,该视图创建一个循环来创建问题模型的表单实例。

现在我很困惑,这是处理相互依赖的多种形式的多个模型的正确方法吗?

【讨论】:

    猜你喜欢
    • 2011-02-22
    • 2011-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-13
    • 1970-01-01
    相关资源
    最近更新 更多