Django模板不会输出多个表单并保存到modelform

Django模板不会输出多个表单并保存到modelform,django,forms,templates,modelform,Django,Forms,Templates,Modelform,问题在于模板不会输出多个表单并保存到模型表单。我正在尝试通过将模板中的不同名称添加到假设模型中的Associations.Name字段来保存来自多个表单的输入。然而,由于某些原因,这种方法不起作用。建议如何解决,将不胜感激。先谢谢你 视图.py from django.shortcuts import render from .forms import modelformset_factory, AssumptionsForm from .models import Assumptions

问题在于模板不会输出多个表单并保存到模型表单。我正在尝试通过将模板中的不同名称添加到假设模型中的Associations.Name字段来保存来自多个表单的输入。然而,由于某些原因,这种方法不起作用。建议如何解决,将不胜感激。先谢谢你

视图.py

from django.shortcuts import render
from .forms import  modelformset_factory, AssumptionsForm
from .models import Assumptions


def get_assumptions(request):

    if request.method == 'POST':


        if 'name' in request.POST:      

            formset = modelformset_factory(Assumptions, form = AssumptionsForm, extra = 5)

            if formset.is_valid():

                print('valid form')            

                for form in formset:

                    print('Looping forms')

                    assumptions =  form.save(commit='False')
                    assumptions.Name = 'name'
                    assumptions.save()



    formset = modelformset_factory(Assumptions, form = AssumptionsForm, extra = 5)    



    return render(request, 'assumptions.html', {'formset': formset})
from django.db import models
from django.forms import ModelForm

class Assumptions(models.Model):

    Worst = models.FloatField(null=True, blank=True, default=None)
    Base = models.FloatField(null=True, blank=True, default=None)
    Best = models.FloatField(null=True, blank=True, default=None)
    Name = models.TextField(null=True, blank=True, default=None)
from django import forms
from django.forms import modelformset_factory, ModelForm
from .models import Assumptions

class AssumptionsForm(ModelForm):

    class Meta:
        model = Assumptions
        fields = ['Worst', 'Base', 'Best']
        exclude = ['Name']
假设.html

{% for name in "AB" %}
    <div class="form">
    <form action="" method="post">
    {% csrf_token %}
    {{ formset.management_form }}
    {{ formset.non_form_errors.as_ul }}

    <table id="formset" class="form">
    {% for form in formset.forms %}
      {% if forloop.first %}
      <thead><tr>
        {% for field in form.visible_fields %}
        <th>{{ field.label|capfirst }}</th>
        {% endfor %}
      </tr></thead>
      {% endif %}
      <tr class="{% cycle 'row1' 'row2' %}">
      {% for field in form.visible_fields %}
        <td>
        {# Include the hidden fields in the form #}
        {% if forloop.first %}
          {% for hidden in form.hidden_fields %}
          {{ hidden }}
          {% endfor %}
        {% endif %}
          {{ field.errors.as_ul }}
          {{ field }}
        </td>
      {% endfor %}
      </tr>
    {% endfor %}
    </table>

    <input type="submit" name="{{name}}" value="save" />
    </form>
    </div>
{% endfor %}
forms.py

from django.shortcuts import render
from .forms import  modelformset_factory, AssumptionsForm
from .models import Assumptions


def get_assumptions(request):

    if request.method == 'POST':


        if 'name' in request.POST:      

            formset = modelformset_factory(Assumptions, form = AssumptionsForm, extra = 5)

            if formset.is_valid():

                print('valid form')            

                for form in formset:

                    print('Looping forms')

                    assumptions =  form.save(commit='False')
                    assumptions.Name = 'name'
                    assumptions.save()



    formset = modelformset_factory(Assumptions, form = AssumptionsForm, extra = 5)    



    return render(request, 'assumptions.html', {'formset': formset})
from django.db import models
from django.forms import ModelForm

class Assumptions(models.Model):

    Worst = models.FloatField(null=True, blank=True, default=None)
    Base = models.FloatField(null=True, blank=True, default=None)
    Best = models.FloatField(null=True, blank=True, default=None)
    Name = models.TextField(null=True, blank=True, default=None)
from django import forms
from django.forms import modelformset_factory, ModelForm
from .models import Assumptions

class AssumptionsForm(ModelForm):

    class Meta:
        model = Assumptions
        fields = ['Worst', 'Base', 'Best']
        exclude = ['Name']