我是Django的新手,正在尝试构建表单。这是一个有很多问题的调查应用。
型号:
我有2个模型Questions
和Responses
。响应有2个字段。
-questionid
,它是问题模型ID的外键
-response
字段,它是1-5之间的整数。
所需表格 所需的表单列出了问题模型中的每个问题,然后列出了下面数字1-3的单选按钮。模板页面上可能有20个问题,每个问题都有3个单选按钮。该数据将被提交给响应模型。最后可能会有更多的单选按钮,为简单起见,显示为3。每个问题都将以1-3的比例回答。
让我感到困惑的是,我需要从questions.id
模型中获取questions
,但又以某种方式将其传递到response
modelForm或表单中。用户应该不能指定question.id。
我不确定创建表单的最佳方法。
尝试1
template.py
<form action="/submit" method="post">
{% csrf_token %}
{% for question in questions %}
<h2>id: {{ question.id }} - {{ question.question_title }}</h2>
<fieldset id="{{ question.id }}">
<label>1</label>
<input type="radio" value="1" name="{{ question.id }}">
<label>2</label>
<input type="radio" value="2" name="{{ question.id }}">
<label>3</label>
<input type="radio" value="3" name="{{ question.id }}">
</fieldset>
{% endfor %}
<br />
<input type="submit" />
</form>
然后在我看来,将其保存到模型中。但是,那么对于像我这样的新手,我不知道如何显示表格错误等。
尝试2: 我尝试使用此设置为“响应”构造一个modelForm:
<form action="/submit" method="post">
{% csrf_token %}
{% for question in questions %}
<h2>id: {{ question.id }} - {{ question.question_title }}</h2>
{{ responseFrom.form }}
{% endfor %}
<br />
<input type="submit" />
</form>
所有单选按钮冲突。例如。为问题1选择收音机1还会看到为其他所有问题选择的收音机1。我也想不出如何为响应模型指定Question.id外键。
如何创建一个具有动态数量输入字段的表单,该表单引用另一模型的ID?
您可以在form.py
中执行此操作吗?它将支持错误和CSRF标签等?