【问题标题】:Questionnaire Form - Django问卷表格 - Django
【发布时间】: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


    【解决方案1】:

    您应该为您的 Answer 模型制作一个 ModelForm。查看模型表单上的 Django 文档,它非常简单,并且将根据您在模型中指定的内容自动进行验证。

    【讨论】:

      猜你喜欢
      • 2012-02-19
      • 1970-01-01
      • 2019-01-27
      • 2021-12-11
      • 2021-07-15
      • 1970-01-01
      • 2015-09-04
      • 1970-01-01
      • 2013-12-10
      相关资源
      最近更新 更多