我正在建立一个网站,允许教师向学生提问,并从学生那里得到答案。
每个“评论”都包含标题、描述,然后是通过外键与评论相关的一堆问题。这些问题将被一一添加,并且要添加更多问题,将使用 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/