我有一个模板,其中显示了一些值。现在我希望能够改变这些价值观。所以我有一个输入字段,其值为“capacity.capacity”。用户现在可以在输入字段中更改此值,然后单击“更改”按钮。 现在我想在我的django视图中处理新输入的值。如何将新值传递给我的视图?
我尝试在网址中添加该值,以便我可以在我的视图中再次检索它。
是否可以将新值添加到网址中,或者是否有不同/更好的方法来执行此操作?
<td>
<input type="number" name=new_capacity id="new_capacity" step="1" value= {{ capacity.capacity }}>
<button>
<span class="glyphicon glyphicon-edit"></span>
<a href="{% url 'change_capacity' item_id=capacity.pk new_capa=NEWVALUE %}"> Change
</button>
</td>
更新:完整代码
我在这个模板中有两个表单和两个提交按钮。两个按钮都应重定向到不同的视图。但是,似乎始终会调用相同的视图。
{% block body %}
<form action="/producer/capacity/" method="post">
{% csrf_token %}
{{ form }}
<input type="submit" value="Hinzufügen" />
</form>
<br/>
<br/>
<div class="container">
<table class="table">
<thead>
<tr>
<th>Maschine</th>
<th>Verfügbare Kapazität</th>
</tr>
</thead>
<tbody>
{% for capacity in capacity_list %}
<tr>
<td>{{ capacity.pk }}</td>
<td>
<form action="" method="post">{% csrf_token %}
<input type="number" name=new_capacity id="new_capacity" step="1" value="{{capacity.capacity}}" />
<input type="submit" value="Change"/>
</form>
</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
{% endblock %}
答案 0 :(得分:0)
我认为最好使用POST方法在模型数据中进行更改,而不是使用GET,因此您可以在模板中编写这样的表单:
<form action="{% url my_app.views.my_capacity_view %}" method="post">{% csrf_token %}
<input type="number" name=new_capacity id="new_capacity" step="1" value="{{capacity.capacity}}" />
<input type="submit" value="Change" />
</form>
您可以设置操作表单网址,以便将字段发送到自定义视图以修改容量值。然后,在视图中,您可以获取值并进行更改,例如:
def my_capacity_view(request):
if request.method == 'POST':
new_capacity = request.POST.get('new_capacity ', '')
# set new value 'new_capacity' to the object
将网址设置为指向视图
(r'^newcapacity', 'my_app.views.my_capacity_view'),
我希望这很有用