首页 > 解决方案 > 如何在表单的多个位置使用一个字段的输入?

问题描述

我对 Django 很陌生,所以如果我错误地使用了一些术语,请原谅我。

在我的一个模板中,我正在尝试使用具有多个输入字段的表单。在这种特定情况下,两个字段的值将始终相同(如果用户名和用户ID 在此模板中,则它们将始终匹配)并且我不想更改表单本身。出于这个原因,我想在这个模板中自定义表单,以便用户只有一个地方提供输入,并在表单的两个字段中使用它,这样用户就不需要输入他们的 ID 两次.

这是我目前正在使用的代码片段:

<form method="post">
  {% csrf_token %}
  <label>ID:</label>
  <input type="text" name="userID" id="userID" placeholder="Type your ID number here.">
  <input type="hidden" name="userName" id="userName" value=userID>
  <button type="submit">Login</button>
</form>

我知道问题出在“value=userID”位上,但我一直在搜索,但不知道如何在多个地方使用一个输入字段中的信息。如何获取用户 ID 并将其作为用户名提交,而无需用户输入两次?

标签: djangodjango-formsdjango-templates

解决方案


您无需两次提供相同的输入即可在后端使用它。您可以在后端使用相同的值。

因此,假设您希望userName后端中的值与userID值相同:

def login_page(request):
    if request.method == 'POST':
        userID = request.POST.get('userID')
        userName = userID

这是基本思想,如果您在 Django 表单中使用基于类的视图,您应该将此代码放在form_valid方法中。


推荐阅读