从输入中获取值并执行函数 django
Posted
技术标签:
【中文标题】从输入中获取值并执行函数 django【英文标题】:get values from input and excute function django 【发布时间】:2021-09-18 10:26:24 【问题描述】:我的 html 页面中有两个输入,我想将它们发送到 Django views.py 中的一个函数。
所以我有一个如图所示的表格:
我想从输入中获取 Quantity 和 disc 值 + 从 from 中获取另一个值 HTML代码是:
<table id="table_id" class="table-wrapper table-sm">
<thead class="thead-light"><tr>
<th>Item Description</th>
<th>Quantity</th>
<th>Disc %</th>
<th></th>
</tr></thead>
<tbody>
<tr >
% for Field in AllItemes %
<td>Field.Item_Code</td>
<td> <input class="form-control mr-1" placeholder="1" name="select_date" type="number" min="0" pattern="\d*"/></td>
<td> <input class="form-control mr-1" placeholder="0" name="select_Disc" type="number" min="0" pattern="\d*"/></td>
<td><a href="% url 'Up_InvoiceTACH' Field.Item_Code select_date select_Disc %" class="btn btn-info btn-sm">Add</a></td>
</tr>
% endfor %
</tbody>
</table>
我的views.py是:
def Up_InvoiceTACH(request, id_itm, id_itm2 , id_itm3):
pass
网址是这样的:
path('up_InvoceTACH/<int:id_itm>/<int:id_itm2>/<int:id_itm3>/', views.Up_InvoiceTACH, name='up_InvoceTACH'),
那么我如何发送这三个参数,尤其是从输入中?
【问题讨论】:
【参考方案1】:更好的方法是使用 Django 表单。 示例
index.html
<form action="/your-name/" method="post">
% csrf_token %
form
<input type="submit" value="Submit">
</form>
forms.py
from django import forms
class NameForm(forms.Form):
your_name = forms.CharField(label='Your name', max_length=100)
views.py
from django.http import HttpResponseRedirect
from django.shortcuts import render
from .forms import NameForm
def get_name(request):
# if this is a POST request we need to process the form data
if request.method == 'POST':
# create a form instance and populate it with data from the request:
form = NameForm(request.POST)
# check whether it's valid:
if form.is_valid():
# process the data in form.cleaned_data as required
# ...
# redirect to a new URL:
return HttpResponseRedirect('/thanks/')
# if a GET (or any other method) we'll create a blank form
else:
form = NameForm()
return render(request, 'name.html', 'form': form)
【讨论】:
非常感谢,但是这种方式仍然缺少输入中的一个字段(3个参数)2,第三个是行ID。但是,我遇到了另一个问题,即我无法在 view.py(许多行和表单)中接收数据,它仅在我们有一个表单时才有效。 如果您创建了 X 个表单,那么您需要编写 X 次相同的代码,您可以在渲染中将它们返回为 'form1': form1, 'form2': form2 等等。 这只是一个例子,您需要在表单中指定您需要的字段。以上是关于从输入中获取值并执行函数 django的主要内容,如果未能解决你的问题,请参考以下文章
如何通过 jQuery+Codeigniter 获取值并显示在输入字段中?
子查询 django 查询以从对象中获取最大的不同值并返回这些对象