Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/438.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Django-从选择字段表单集中提取数据_Javascript_Python_Html_Django - Fatal编程技术网

Javascript Django-从选择字段表单集中提取数据

Javascript Django-从选择字段表单集中提取数据,javascript,python,html,django,Javascript,Python,Html,Django,我在Django探索表单集的机制。以下是我所做工作的要点: 创建了一个示例choicefield表单 forms.py from django import forms MONTH_CHOICES = (("JANUARY", "January"), ("FEBRUARY", "February"), ("MARCH", "March"),

我在Django探索表单集的机制。以下是我所做工作的要点:

  • 创建了一个示例choicefield表单
  • forms.py

          from django import forms
    
          MONTH_CHOICES = (("JANUARY", "January"),
                           ("FEBRUARY", "February"),
                           ("MARCH", "March"),
                           ("DECEMBER", "December"),)
    
          class NameForm(forms.Form):
                your_name = forms.ChoiceField(label="Your Name",choices=MONTH_CHOICES)
    
        from django.shortcuts import render
        from django.http import HttpResponseRedirect,HttpResponse
        from django.forms.formsets import formset_factory
        from .forms import NameForm
    
        def index(request):
            lfs = formset_factory(NameForm)
            if request.method == 'POST':
                postedformset = lfs(request.POST)
                if postedformset.is_valid():
                    for formz in postedformset:
                        print formz.cleaned_data['your_name']
                return HttpResponseRedirect('/polls/thanks/')
            else:
                form = NameForm()
                    return render(request,'name.html',{'form':lfs})
    
        def thanks(request):
            return HttpResponse('Form filled. Thanks!')
    
  • 添加了带有表单集实例的视图代码,用于NameForm和数据处理
  • 视图.py

          from django import forms
    
          MONTH_CHOICES = (("JANUARY", "January"),
                           ("FEBRUARY", "February"),
                           ("MARCH", "March"),
                           ("DECEMBER", "December"),)
    
          class NameForm(forms.Form):
                your_name = forms.ChoiceField(label="Your Name",choices=MONTH_CHOICES)
    
        from django.shortcuts import render
        from django.http import HttpResponseRedirect,HttpResponse
        from django.forms.formsets import formset_factory
        from .forms import NameForm
    
        def index(request):
            lfs = formset_factory(NameForm)
            if request.method == 'POST':
                postedformset = lfs(request.POST)
                if postedformset.is_valid():
                    for formz in postedformset:
                        print formz.cleaned_data['your_name']
                return HttpResponseRedirect('/polls/thanks/')
            else:
                form = NameForm()
                    return render(request,'name.html',{'form':lfs})
    
        def thanks(request):
            return HttpResponse('Form filled. Thanks!')
    
    3.用于实现表单集的HTML,以及用于添加和删除表单的javascript

    name.html

    <html>
    <head>
        <title>DJANGO - First Forms</title>
    </head>
    <body>
        <form action="/polls/" method="POST">
            {{ form.management_form }}      
            <div class="link-formset">
                {{ form }}
            </div>
            <input type="Submit"/>
        </form>
    </body>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.formset/1.2.2/jquery.formset.min.js"></script>
    <script>
        $('.link-formset').formset({
            addText: 'add link',
            deleteText: 'remove'
        });
    </script>
    
    他被处决了。Querydict from request.POST具有表单集中所有表单的选项(请参阅更新

    请分享你的想法

    PS:我确实检查了诸如和之类的问题,但仍然无法找到根本原因

    更新

    对于我的表单集中的两个表单,当我尝试打印request.POST时,获得了下面的QueryDict,其中包含来自两个表单的信息

    <QueryDict: {u'form-1-form-TOTAL_FORMS': [u''],  u'form-1-form-MIN_NUM_FORMS': [u''], u'form-1-form-MAX_NUM_FORMS': [u''],   u'form-1-form-INITIAL_FORMS': [u''], u'form-MAX_NUM_FORMS': [u'1000', u'1000'],   u'form-1-your_name': [u'FEBRUARY'], u'form-0-your_name': [u'FEBRUARY'],   u'form-MIN_NUM_FORMS': [u'0', u'0'], u'form-INITIAL_FORMS': [u'0', u'0'],   u'form-TOTAL_FORMS': [u'2', u'1']}>