我想要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