django - 如何在表单的多个位置使用一个字段的输入?
问题描述
我对 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 并将其作为用户名提交,而无需用户输入两次?
解决方案
您无需两次提供相同的输入即可在后端使用它。您可以在后端使用相同的值。
因此,假设您希望userName
后端中的值与userID
值相同:
def login_page(request):
if request.method == 'POST':
userID = request.POST.get('userID')
userName = userID
这是基本思想,如果您在 Django 表单中使用基于类的视图,您应该将此代码放在form_valid
方法中。