Python 正在验证具有N个相同属性的表单

Python 正在验证具有N个相同属性的表单,python,django,forms,validation,Python,Django,Forms,Validation,我正在尝试使用多个具有相同“name”属性的字段验证表单 第一用户表格: class BuyTicketFormEmail(forms.Form): email = forms.EmailField() first_name_customer = forms.CharField(max_length=191) last_name_customer = forms.CharField(max_length=191) 其他用户的表格 class UserForm(forms

我正在尝试使用多个具有相同“name”属性的字段验证表单

第一用户表格:

class BuyTicketFormEmail(forms.Form):
    email = forms.EmailField()
    first_name_customer = forms.CharField(max_length=191)
    last_name_customer = forms.CharField(max_length=191)
其他用户的表格

class UserForm(forms.Form):
    first_name_user = forms.CharField(max_length=191)
    last_name_user = forms.CharField(max_length=191)
表格: 客户可以添加多个额外的用户,我不知道确切的数字,都有相同的名字


在HTML中,我只显示一个表单,如何验证此表单?

我不在家,我使用智能手机编写了此表单,如果代码不是100%正确,请原谅。但你会得到大线

对于视图:

def add_user(request):
    i = 1
    n = 5 #change it to the number of users you want
    all_users_forms = []
    while i < n+1 :
        one_user_form = UserForm()
        all_users_forms += one_user_form
        i += 1
    context = {'all_users_forms':all_users_forms}   
    template = 'form.html' #change it to your template name
    return render(request, template, context)
我不知道确切的长度(N),但你的回答帮助我找到了答案,谢谢

names = request.POST.getlist('first_name')
surnames = request.POST.getlist('last_name')
id = 0
for name in names:
    data = {
        'first_name': name,
        'last_name': surnames[id]
    }
    users_form = self.users_form_class(data)
    id += 1
    if users_form.is_valid():
        f_name = users_form.cleaned_data['first_name']
        l_name = users_form.cleaned_data['last_name']
    else:
        return HttpResponse('String is too long, or containts incorrect characters')

看看django表单集:。这是一个我喜欢的教程:@HenryM我不想保存数据,只想验证它,加上模型有更多的字段,我正在为每个额外的用户生成哈希等等。但是原则都在那里,只是不保存
names = request.POST.getlist('first_name')
surnames = request.POST.getlist('last_name')
id = 0
for name in names:
    data = {
        'first_name': name,
        'last_name': surnames[id]
    }
    users_form = self.users_form_class(data)
    id += 1
    if users_form.is_valid():
        f_name = users_form.cleaned_data['first_name']
        l_name = users_form.cleaned_data['last_name']
    else:
        return HttpResponse('String is too long, or containts incorrect characters')