从输入中获取值并执行函数 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的主要内容,如果未能解决你的问题,请参考以下文章

如何从文本文件中获取值并输入到二维数组中? C++

如何从文本字段中获取值并读取按键事件

如何通过 jQuery+Codeigniter 获取值并显示在输入字段中?

子查询 django 查询以从对象中获取最大的不同值并返回这些对象

将 Django 中的 json 数据输入到 jquery 函数中

如何获取新值并取消文本输入字段中的事件?