首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何处理Django中的许多文本输入字段?

如何处理Django中的许多文本输入字段?
EN

Stack Overflow用户
提问于 2021-12-30 21:13:44
回答 1查看 49关注 0票数 1

我在我的简历网站上使用Django 3(仍然)。我正在编写一个Sudoku作为个人项目的示例,所以我在一个网格中有81个文本输入字段。我正试图找到在Django中处理多达81个输入的最不痛苦的方法,这样我就可以将输入传递给处理sudoku逻辑的Python函数。我将如何将用户输入输入到我的views.py中并处理所有这些输入?

我想取用户输入数字的任何单元格,通过我的Python函数对它们进行处理,然后将完整的拼图发送回单元格中。我对HTML中的表单和表单数据还没有很好的经验。这里是处理网格的HTML,以供参考。我知道我需要为输入字段添加最大文本长度,以确保用户每个单元格只能输入1位数字。

代码语言:javascript
复制
<section class="resume-section">
    <div class="d-lg-grid" id="grid">
        <div id="grid-1">
            <input type="text" size="3" id="cell1">
            <input type="text" size="3" id="cell10">
            <input type="text" size="3" id="cell19">
            <input type="text" size="3" id="cell28">
            <input type="text" size="3" id="cell37">
            <input type="text" size="3" id="cell46">
            <input type="text" size="3" id="cell55">
            <input type="text" size="3" id="cell64">
            <input type="text" size="3" id="cell73">
        </div>
        <div id="grid-2">
            <input type="text" size="3" id="cell2">
            <input type="text" size="3" id="cell11">
            <input type="text" size="3" id="cell20">
            <input type="text" size="3" id="cell29">
            <input type="text" size="3" id="cell38">
            <input type="text" size="3" id="cell47">
            <input type="text" size="3" id="cell56">
            <input type="text" size="3" id="cell65">
            <input type="text" size="3" id="cell74">
        </div>
        <div id="grid-3">
            <input type="text" size="3" id="cell3">
            <input type="text" size="3" id="cell12">
            <input type="text" size="3" id="cell21">
            <input type="text" size="3" id="cell30">
            <input type="text" size="3" id="cell39">
            <input type="text" size="3" id="cell48">
            <input type="text" size="3" id="cell57">
            <input type="text" size="3" id="cell66">
            <input type="text" size="3" id="cell75">
        </div>
        <div id="grid-4">
            <input type="text" size="3" id="cell4">
            <input type="text" size="3" id="cell13">
            <input type="text" size="3" id="cell22">
            <input type="text" size="3" id="cell31">
            <input type="text" size="3" id="cell40">
            <input type="text" size="3" id="cell49">
            <input type="text" size="3" id="cell58">
            <input type="text" size="3" id="cell67">
            <input type="text" size="3" id="cell76">
        </div>
        <div id="grid-5">
            <input type="text" size="3" id="cell5">
            <input type="text" size="3" id="cell14">
            <input type="text" size="3" id="cell23">
            <input type="text" size="3" id="cell32">
            <input type="text" size="3" id="cell41">
            <input type="text" size="3" id="cell50">
            <input type="text" size="3" id="cell59">
            <input type="text" size="3" id="cell68">
            <input type="text" size="3" id="cell77">
        </div>
        <div id="grid-6">
            <input type="text" size="3" id="cell6">
            <input type="text" size="3" id="cell15">
            <input type="text" size="3" id="cell24">
            <input type="text" size="3" id="cell33">
            <input type="text" size="3" id="cell42">
            <input type="text" size="3" id="cell51">
            <input type="text" size="3" id="cell60">
            <input type="text" size="3" id="cell69">
            <input type="text" size="3" id="cell78">
        </div>
        <div id="grid-7">
            <input type="text" size="3" id="cell7">
            <input type="text" size="3" id="cell16">
            <input type="text" size="3" id="cell25">
            <input type="text" size="3" id="cell34">
            <input type="text" size="3" id="cell43">
            <input type="text" size="3" id="cell52">
            <input type="text" size="3" id="cell61">
            <input type="text" size="3" id="cell70">
            <input type="text" size="3" id="cell79">
        </div>
        <div id="grid-8">
            <input type="text" size="3" id="cell8">
            <input type="text" size="3" id="cell17">
            <input type="text" size="3" id="cell26">
            <input type="text" size="3" id="cell35">
            <input type="text" size="3" id="cell44">
            <input type="text" size="3" id="cell53">
            <input type="text" size="3" id="cell62">
            <input type="text" size="3" id="cell71">
            <input type="text" size="3" id="cell80">
        </div>
        <div id="grid-9">
            <input type="text" size="3" id="cell9">
            <input type="text" size="3" id="cell18">
            <input type="text" size="3" id="cell27">
            <input type="text" size="3" id="cell36">
            <input type="text" size="3" id="cell45">
            <input type="text" size="3" id="cell54">
            <input type="text" size="3" id="cell63">
            <input type="text" size="3" id="cell72">
            <input type="text" size="3" id="cell81">
        </div>
    </div>
</section>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-30 22:07:24

通过向name元素添加input属性来修改输入字段:

sudoku.html

代码语言:javascript
复制
<form method="POST">
{% csrf_token %}
...
<input type="text" size="3" id="cell1" name="grid">
...
</form>

views.py

代码语言:javascript
复制
def sudoku(request):
    grid = []
    if request.method == 'POST':
        grid = request.POST.getlist('grid')
    context = {'grid': grid}
    return render(request, 'sudoku.html' context=grid)

grid是由81个元素组成的列表。现在您可以使用form元素处理与简单HTML的交互,也可以使用ajax查询视图方法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70536768

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档