从 Django HTML 表单中检索数据并将其传递给 MySQL 数据库

Posted

技术标签:

【中文标题】从 Django HTML 表单中检索数据并将其传递给 MySQL 数据库【英文标题】:Retrieving data from Django HTML form and passing it to a MySQL database 【发布时间】:2022-01-20 04:18:31 【问题描述】:

我有一个数据库,每个用户都有多个用户名和电话号码。在我创建的 Django 模板上,用户会看到一个名称列表,用户可以单击一个名称或多个名称,数据库将使用分配给该名称的电话号码进行响应。但是,我在 Django 模板中使用 for 循环来迭代数据库中的名称以显示给用户,因为计数可以更改。当我选择一个名字时它可以正常工作,但是,如果我选择多个名字,它会选择最后一个名字而不是显示所有名字。此错误是由于我的 for 循环解决方案具有相同的“名称”分配给所有输入。有人知道我该如何解决这个问题吗?

我的视图表单:

def select_contact(request):
    alldata = identity_log.objects.values_list("first_name", flat=True)
    #https://docs.djangoproject.com/en/4.0/ref/models/querysets/
    checkform = contact_form(request.POST or None)
    context = 'alldata': alldata
    print(checkform)
    display_type = request.POST.get("contact_option", None)
    if display_type in alldata:
        print(display_type)
    return render(request, 'message_me/select_contact.html', context)

我的模板:

% extends "base.html" %
% load static %


% block body %
<p>Please select your favorite Web language:</p>
% for x in alldata %
  <form id="contact_option" role="form" action="" method="POST">
    % csrf_token %
    <input type="checkbox" id="contact_option" name="contact_option" value="x">
  <label for="contact_option">x</label><br>
% endfor %
    <div class="row">
        <div class="col-md-12"> <input type="submit" name="submit" class="btn btn-success btn-send pt-2 btn-block " value="Continue"> </div>
    </div>
</form>

% endblock %

image of the HTML doc

【问题讨论】:

【参考方案1】:

替换:

 <input type="checkbox" id="contact_option" name="contact_option" value="x">

 <input type="checkbox" id="contact_optionx" name="contact_optionx" value="x">

现在每个用户都有一个唯一的 ID。

【讨论】:

Gaëtan GR 如何在视图上调用它?我的视图没有 x for 循环。 您的模板中有一个 for 循环,我只是使用了您的代码并添加了唯一的名称和 id 我应该在视图中放置什么来代替“contact_option”? display_type = request.POST.get("contact_option", None) 我使用了以下方法,但似乎不起作用。我正在通过将输出打印到控制台进行测试 display_type = request.POST.getlist("contact_option", None) 有什么想法@Gaëtan GR?

以上是关于从 Django HTML 表单中检索数据并将其传递给 MySQL 数据库的主要内容,如果未能解决你的问题,请参考以下文章

从数据库中检索值并将其存储为会话变量

从使用 jQuery 加载的表单中检索数据并将其传递给父页面

如何将从表单提交中检索到的参数作为参数传递给 django 中的函数

ASP.NET MVC 4 无法从表单中检索文件

从 Django 表单的实例中检索变量

从 Django 表单 ChoiceField 中检索选定的选项