我想要register/process Python中使用Django作爲用戶界面的1到5個用戶信息的列表。這不是典型的用戶註冊過程。我只是想處理用戶數據。用戶信息包含3個字段,名字,姓氏和性別。我能夠獲得一個用戶信息,但不確定如何收集第二,第三,第四或第五個用戶。如何在Django中處理多輸入表單字段
使用jQuery動態添加包含用戶信息的輸入框。它可以有1個條目或5個條目,具體取決於用戶是否添加更多字段。我試圖讓addName.html和views.py來處理列表,但這是不正確的。我的最終目標是利用這些數據,並在我的views.py說明它傳遞給我的Python程序
# Perform a Python Script using data gathered
# registerName = addName ('first_name', 'last_name', 'gender')
我欣賞的幫助,併爲長期職位道歉。我想說清楚並容易理解。
順便說一下,不要介意與女性名字的男性單選按鈕。這是爲了舉例。
models.py
# MySite/formtest/models.py
from django.db import models
# Create your models here.
class Form (models.Model):
first_name = models.CharField (max_length = 20, null = False, blank = False)
last_name = models.CharField (max_length = 20, null = False, blank = False)
gender = models.CharField (max_length = 12, null = False, blank = False)
def __str__(self):
return self.first_name
addName.html
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
</head>
<body>
<form action="process" method="POST">{% csrf_token %}
<input type="radio" name="gender" value="Male">Male
<input type="radio" name="gender" value="Female">Female
<p><label for="firstName">First Name: </label>
<input id="firstName" type="text" name="firstName1" placeholder="John" required="True" maxlength="20">
<label for="lastName">Last Name: </label>
<input id="lastName" type="text" name="lastName1" placeholder="Doe" required="True" maxlength="20">
<input type="button" value="add"></p>
<p><label for="firstName">First Name: </label>
<input id="firstName" type="text" name="firstName2" placeholder="John" required="True" maxlength="20">
<label for="lastName">Last Name: </label>
<input id="lastName" type="text" name="lastName2" placeholder="Doe" required="True" maxlength="20">
<a href="#">remove</a></p>
<p><input type="submit" value="Process Name"></p>
</form>
</body>
</html>
views.py
from django.shortcuts import render
from django.http import HttpResponse, HttpResponseRedirect
from django.core.context_processors import csrf
from formtest.models import Form
# Create your views here.
def addNameDisplay (request):
c = {}
c.update (csrf (request))
return render (request, 'formtest/addName.html')
def Process (request):
i = 1
while (i <= 5):
Form (first_name = request.POST ['firstName[i]'],
last_name = request.POST ['lastName[i]'],
gender = request.POST ['gender']).save()
# Perform a Python Script using data gathered
# registerName = addName ('first_name', 'last_name', 'gender')
i += 1
return HttpResponseRedirect ('results')
def Results (request):
nameInfo = Form.objects.all()
context = {'nameInfo': nameInfo}
return render (request, 'formtest/results.html', context)
results.html
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title>User Information</title>
</head>
<body>
{% for name in nameInfo %}
<li><b>First Name</b>: {{ name.first_name }} <b>Last Name</b>: {{ name.last_name }} <b>Gender</b>: {{ name.gender }}</li>
{% endfor %}
<a href="addname">Add More Names</a>
</body>
</html>
我做了我的HTML部分的一些變化,但後來我遇到了一些問題與「form.is_valid()」。由於我的模型不是Django表單的屬性,因此您的解決方案不起作用。我不得不改變我的模型和我的觀點。 – dreamzboy 2014-11-07 07:18:19
那麼,希望我的輸入可以幫助你找到你的方式,無論路徑:)快樂的編碼。 – 2014-11-07 07:19:51
它確實如此,我很感激。我是Python的新手,更不用說添加Django了。相當壓倒性的,所以我可能不知道我在做什麼。 – dreamzboy 2014-11-07 19:43:04