【发布时间】:2019-09-23 12:47:33
【问题描述】:
我正在 Django 中创建一个应用程序,但在从 Django 中的表单的下拉列表中迭代选项时遇到问题。我想知道是否有人可以提供帮助。
detail.html
{% for subject in subject_list %}
<form action="" method="POST">
{% csrf_token %}
<table class='table table-borderless table-hover'>
<tbody>
<tr>
<td>{{ subject.subjectname }}
{% for field in form %}
{{ field.hidden }}
{% endfor %}
</td>
</tr>
</tbody>
</table>
<button type="submit" id="login-btn" class="btn">Create a new evaluation</button>
</form>
{% endfor %}
forms.py
class CreateEvalForm(forms.ModelForm):
subjectname = ModelChoiceField(queryset=Subject.objects, label='', empty_label="Choose subject..")
class Meta:
model = Evaluation
fields = ['subjectname', ]
models.py
class Subject(models.Model):
id = models.AutoField(primary_key=True)
subjectname = models.CharField(max_length=255, help_text="Type the name of the subject.")
slug = models.SlugField(max_length=200, unique=True)
理想情况下,我们希望它如下图所示: 注意图片为丹麦语,Fag = 主题,Opret ny evaluering = 创建新评估,Se evaluering = 查看评估
【问题讨论】:
-
您希望“创建新评价”链接直接提交表单?还是应该只打开一个新页面来填写更多数据?
-
这样提交表单有点奇怪……
-
目前它适用于我们选择的任何主题都会创建对该主题的评估,所以是的,我们想在这里提交选择的主题。我们想要一个包含每个主题的行和一个按钮,就像常规下拉菜单一样,但采用表格形式。
-
奇怪的方式,只是链接到预先填写主题ID的表单而不是实际提交和创建“空”评估会更容易。但是,如果这是您真正想要的,只需渲染一个 字段,该字段的名称为
subjectname和相应主题的 id 的值,这样您的 POST 将包含主题为您的subject name,您的表单将起作用。 -
我不明白你的意思?当我们将表单呈现到我们的模板中时,我们必须能够将主题值循环到一个表中?
标签: django django-models django-forms django-templates django-views