【发布时间】:2017-04-01 17:10:03
【问题描述】:
我正在尝试构建类似问卷调查的应用程序。我已经构建了models.py,如下所示:
# models.py
class QuestionSet(models.Model):
name = models.CharField(max_length=100)
description = models.TextField(blank=True)
def __str__(self):
return "{} Question Form".format(self.name)
class Question(models.Model):
q_set = models.ForeignKey(QuestionSet,
on_delete=models.CASCADE,
related_name='questions')
text = models.CharField(max_length=100)
def __str__(self):
return self.text
class Answer(models.Model):
user = models.ForeignKey(settings.AUTH_USER_MODEL,
on_delete=models.CASCADE,
related_name='answers')
question = models.ForeignKey(Question)
text = models.CharField(max_length=100)
def __str__(self):
return "Answer to {}".format(self.question)
但是,我正在努力想出可以在前端正确显示此内容并验证输入数据的表单。
我尝试从我的Question 模型中显示问题文本并在下面添加输入字段,所有这些都没有使用 Django 表单。虽然这看起来可行,但它引发了数据验证问题以及将数据与特定问题(具有问题 id 值的隐藏字段)相关联的问题。
有什么方法可以创建多个Questions(都属于同一个QuestionSet)的表单,这将显示只读字段(Question模型的文本字段)和下方的关联输入字段(Answer 模型文本字段)?
【问题讨论】:
标签: django python-3.x django-forms django-views django-validation