将表格数据从模板发送到 django 中的 view.py

Posted

技术标签:

【中文标题】将表格数据从模板发送到 django 中的 view.py【英文标题】:Send table data from template to view.py in django 【发布时间】:2017-03-20 09:31:18 【问题描述】:

我将一个列表(即data_code)从view.py 传递到一个html 文件,然后我使用for 循环在列表中打印表格的数据。表<input> 中有一个可编辑的列,我想在用户填写我的view.py 后获取这些数据。所以有人知道怎么做吗?

我想在view.py 中获取所有x.2。它正在打印一些默认值,但在用户使用后我又想要它。

代码如下:

<table class="table table-bordered datatable">
    <thead class="table-head">
      <tr>
        <th>No</th>
        <th>Code Point</th>
        <th>Reference</th>
        <th>Character</th>
        <th>Text</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      % for x in data_code %
      <tr class="table-row">
        <td> forloop.counter </td>
        <td><label> x.0 </label></td>
        <td><input id="codepoint_input" type="text" value=x.2 size=3 title="Text"></td>
        <td><label> x.3</label></td>
        <td>x.4</td>
      </tr>
      % endfor %
    </tbody>
  </table>

【问题讨论】:

查找 django 表单 @e4c5 你不能给我一些提示吗? 这就是我所做的 我阅读了 django 表单,但没有得到任何好的示例。所以如果你能举个例子就好了。 【参考方案1】:

第一个任务是简单地使用 jquery 获取那些输入的值...

$(#codepoint_input).keypress(function(e) 
    if(e.which == 13) 
        // your custom code here.
        var tablestring = $("#tableForm").serialize();

        $.post( "/backend", tablestring );

    
);

终于可以在视图函数中获取值了...

def backend(request):
    print(request.POST)

【讨论】:

请您详细说明您的代码。表示e.which==13 会做什么。它是否能够获取所有值,例如如果循环运行 10 次,那么将有 10 个输入可能有些已更改,有些具有默认值?如果是,它会是一个列表还是什么? @tenstormavi 看到每次用户输入的东西...keypress 着火了,我只跟踪Enter_Key 所以如果按下那么你可以得到正确的值吗? 如果您想获取所有第 N 个值并传递给视图,那么我可以提供帮助... 好的,但我想要同时获得所有值,无论是更改还是默认值。我必须进一步处理我的代码中的所有值。那么我如何同时获得所有 10 个值@Raja Simon 好的,告诉我该怎么做? @Raja Simon【参考方案2】:

编辑: 使用字典类型,这样就可以通过key给每个输入框起一个唯一的名字,并在value parm中使用对应的值。

在视图中,可以使用for循环遍历整个字典,并使用key从模板中获取值。

在您的模板中:

<form name = "yourForm" method="GET" action="/" class = "main">
% for key, value in json.data_code%
     <td>
        <input name = " key " id="codepoint_input" type="text" value= value  size=3 title="Text">
        <input type="submit" id = "amountbtn" style="visibility:hidden;" >

    </td>
% endfor %
</form>

在你看来:

key1 = request.GET.get('key1') 
....

【讨论】:

它是否能够获取所有值,例如如果循环运行 10 次则将有 10 个输入,可能有些已更改,有些有默认值?如果是,它会是一个列表还是什么? @tenstormavi 啊,我明白了。我猜会有 x 数量的行和 x 数量的输入框。在这种情况下,我会进行编辑。

以上是关于将表格数据从模板发送到 django 中的 view.py的主要内容,如果未能解决你的问题,请参考以下文章

如何将数据发送到 Django 中的基本模板?

如何将不同的数据从视图传递到模板?

Django如何将数据从视图发送到模板

从 django 中的单个视图呈现多个模板

在更新 mysqlDatabase 内容时刷新 django 模板中的表内容

Django - 如何正确地将列表从模板发送到 AJAX 以查看?