我有一个视图,它将上下文传递给像这样的模板
context = {
'items': items,
}
项目是项目的集合/列表。 在我的模板中,我列出了所有这些项目,并为每个项目创建了一个带有按钮的表单。现在我希望能够分别对每个人做一些事情,表单看起来像这样:
<form action= "{% url 'app:page' %}" method="POST">
{% csrf_token %}
<input type="hidden" name="something" value="{{item.id}}"/>
<button type="submit">ButtonCaption</button>
</form>
我想获取已选择项ID的信息到页面视图。我通常使用forms.Form来做,但在这种情况下,我依赖于模板中选择的东西。如何将{{item.id}}添加到我的视图中?
答案 0 :(得分:1)
如果您传递多个要为每个项目制作表单的项目,则应调用for循环,如:
{% for item in items %}
<form action= "{% url 'app:page' %}" method="POST">
{% csrf_token %}
<input type="hidden" name="something" value="{{item.id}}"/>
<button type="submit">ButtonCaption</button>
</form>
{% endfor %}
否则你应该只在你的上下文中传递一个项目,如:
context = {'item': item,}
或者在你的for循环中做一些检查,如:
{% for item in items %}
{% if item.somevalue == 'somevalue' %}
#some code if the value is true
{% endif %}
{% endfor %}
答案 1 :(得分:1)
我的问题的解决方案是创建一个新的Form类,其输入元素的名称与表单中的名称相同。然后就像发布那样发布表单 叫这个
form = SomeForm(request.POST)
并按照文档中的说明使用它。