Django:从一个 View 创建多个对象

标签 django python-3.x

我正在建立一个网站,允许教师向学生提问,并从学生那里得到答案。

每个“评论”都包含标题、描述,然后是通过外键与评论相关的一堆问题。这些问题将被一一添加,并且要添加更多问题,将使用 Javascript 来添加其他字段。

我目前正在考虑通过一个 View 来实现此目的,该 View 首先处理一个表单,该表单创建带有标题、描述和创建它的用户的 Review 对象。然后,它会根据用户输入的所有问题,使用刚刚创建的评论 ID 为每个问题创建一个对象。

我制作了一个简单的表单和一个用于创建评论 block 的 View ,但是我不知道如何处理用户想要添加的问题。

如果还有其他更好的方法,请告诉我!

谢谢

最佳答案

我假设您的 models.py 中大致有这些类:

Student
Teacher
Review
Question

因此,它是关于设置底层数据模型以促进您想要实现的内容。我建议您需要在此处实现多对多关系,以将问题和答案映射到评论。 对于每条评论,您都需要将其加入问题,例如:

class ReviewQuestions(models.Model):
    questionID = models.ForeignKey(Question)
    reviewID = models.ForeignKey(Review)
    questionNumber = models.IntegerField()

应该将评论加入到问题列表中,您甚至可以添加问题编号(如上面的示例)。

要合并答案,您需要使用如下方式将每个学生的答案链接到问题:

class ReviewQuestionAnswers(models.Model):
    reviewQuestionID = models.ForeignKey(ReviewQuestions)
    studentID = models.ForeignKey(Student)
    answer = models.TextField()

当然,答案可能是整数或其他东西,但这种结构意味着对于每次评论中的每个问题,您都可以为每个学生存储一个答案。

然后,您应该能够渲染 ReviewQuestions 模型,因为它将链接到 reviewID(以便您可以获得所有详细信息),并且只需为要添加的每个问题添加一条记录即可。

关于Django:从一个 View 创建多个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47097849/

相关文章:

python - 在通过 Apache 运行的 Django 中记录消息

html - 在 Django 的 TextField 中禁用 HTML 转义

django - 如何根据外部表中的值动态设置 django TabularInline 的 max_num?

Django 管理日志条目 : how it works in non admin actions?

python - 在数组中选择一个字符串变量 - Python

python - 在没有任何连接的情况下在 Flask 上显示 Swagger UI

python - Tornado模板系统中的block.super

python - 权限错误: [Errno 13] Permission denied | WeasyPrint

python-3.x - (Python)查找受分区大小限制限制的列表列表的所有可能分区

python - 如何在 Pandas 中进行 Groupby 比率计算