title: django form is returning None even if something is in the input
body: <p>Hello so I've been creating a custom form int django and everything has been working the way I thought it  would until i came across this problem. So I've created a form for instructions:</p>
  
  <pre><code>class InstructionForm(forms.Form):
      step = forms.IntegerField(widget=forms.HiddenInput(attrs={'value':1}))
      instruction = forms.CharField(widget=forms.Textarea)
  </code></pre>
  
  <p>Which I created a Formset for so I can let the user add as many as they want.</p>
  
  <p>view.py</p>
  
  <pre><code>def create(request):
      recipeForm = RecipeForm()
      ingredientFormSet = formset_factory(IngredientForm, extra=4)
      instructionFormSet = formset_factory(InstructionForm)
  
      if request.method == "POST":
          recipe = RecipeForm(request.POST)
          ingredients_forms = ingredientFormSet(request.POST, prefix="ingredient")
          instruction_forms = instructionFormSet(request.POST, prefix="instruction")
  
          if recipe.is_valid() and ingredients_forms.is_valid() and instruction_forms.is_valid():
              newRecipe = Recipe()
              newRecipe.title = recipe.cleaned_data['title']
              newRecipe.description = recipe.cleaned_data['description']
              newRecipe.save()
  
              for ingredient in ingredients_forms:
                  cd = ingredient.cleaned_data
                  ingredientName = cd.get('ingredient')
                  try:
                      ingredientObj = Ingredient.objects.get(name=str(ingredientName))
                  except Ingredient.DoesNotExist:
                      ingredientObj = Ingredient(name=str(ingredientName))
                  finally:
                      ingAmount = IngredientAmount()
                      ingAmount.amount = cd.get('amount')
                      ingAmount.unit = cd.get('unit')
  
                      ingredientObj.save()
  
                      ingAmount.ingredient = ingredientObj
                      ingAmount.recipe = newRecipe
                      ingAmount.save()
                      newRecipe.ingredients.add(ingredientObj)
                      newRecipe.save()
              #used a counter because my initial way of doing this wont work
              i=1
              for instruction in instruction_forms:
                  cd = instruction.cleaned_data
                  instruct = cd.get('instruction')
                  # I feel like the problem is somewhere in here
                  instructObj = Instruction(instruction=instruct)
                  instructObj.step = i
                  instructObj.recipe = newRecipe
                  instructObj.save()
                  i+=1
  else:
      ingredients_forms = ingredientFormSet(prefix="ingredient")
      instruction_forms = instructionFormSet(prefix="instruction")
  
  return render(request, 'foods/createFood.html',{'recipeForm':recipeForm, 'ingredientFormSet': ingredients_forms, 'instructionFormSet': instruction_forms})
  </code></pre>
  
  <p>so the ingredients form and the recipe form work just fine I can add Ingredients and they'll all be added to the database. But if I add an instruction the first one works all the others won't they return None.</p>
  
  <p>createFood.html</p>
  
  <pre><code>&lt;div class="container" id="foodsPage"&gt;
  
      &lt;form method="POST"&gt;
          {% csrf_token %}
          {{recipeForm.as_p}}
  
          {{ingredientFormSet.management_form}}
          {% for ingredient in ingredientFormSet %}
          &lt;div class="fieldWrapper" id="ingForm0"&gt;
              {{ingredient.amount.label_tag}}
              {{ingredient.amount}}
              {{ingredient.unit.label_tag}}
              {{ingredient.unit}}
              {{ingredient.ingredient.label_tag}}
              {{ingredient.ingredient}}
          &lt;/div&gt;
          {% endfor %}
          &lt;div id="addMoreIng"&gt;
          &lt;/div&gt;
              &lt;input type="button" id="addIngredient" onclick="addIngFunction()" value="Add Ingredient"&gt;
          &lt;/div&gt;
  
  
          &lt;div class="instructions"&gt;
          &lt;div id="addMoreIns"&gt;
           {{instructionFormSet.management_form}}
           {% for instruction in instructionFormSet %}
              {{instruction.step}}
              {{instruction.instruction.label_tag}}
              {{instruction.instruction}}
               &lt;/div&gt;
                &lt;/div&gt;
           {% endfor %}
  
  
  
  
  
           &lt;input type="button" id="addInstruction" onclick="addInsFunction()" value="Add instruction"&gt;
  
           &lt;script&gt;
  
           function addIngFunction(){
              $('#id_ingredient-TOTAL_FORMS').val(function(i, oldval){
                      oldval
                      var html = '&lt;div class="fieldWrapper" id="ingForm'+oldval+'"&gt;'+
              '&lt;label for="id_ingredient-'+oldval+'-amount"&gt;Amount:&lt;/label&gt;'+
              ' &lt;input type="number" name="ingredient-'+oldval+'-amount" step="any" id="id_ingredient-'+oldval+'-amount" /&gt;'+
              ' &lt;label for="id_ingredient-'+oldval+'-unit"&gt;Unit:&lt;/label&gt;'+
              ' &lt;input type="text" name="ingredient-'+oldval+'-unit" maxlength="3" id="id_form-'+oldval+'-unit" /&gt;'+
              ' &lt;label for="id_ingredient-'+oldval+'-ingredient"&gt;Ingredient:&lt;/label&gt;'+
              ' &lt;input type="text" name="ingredient-'+oldval+'-ingredient" maxlength="100" id="id_ingredient-'+oldval+'-ingredient" /&gt;'+
          '&lt;/div&gt;'
  
  
              $('#addMoreIng').append(html)
                      return ++oldval;
              })
          }
  
          function addInsFunction(){
              $('#id_instruction-TOTAL_FORMS').val(function(i, oldval){
  
                      var val = parseInt(oldval)+1
                      var html = '&lt;input type="hidden" name="instruction-'+oldval+'-step" value="'+val+'" id="id_instruction-'+oldval+'-step" /&gt;'+
              '&lt;label for="id_instruction-'+oldval+'-instruction"&gt;Instruction:&lt;/label&gt;'+
              '&lt;textarea name="instruction-'+oldval+'-instruction" cols="40" rows="10" id="id_instruction-'+oldval+'-instruction"&gt;'+
  '&lt;/textarea&gt;'
  
              $('#addMoreIns').append(html)
                      return ++oldval;
              })
          }
          &lt;/script&gt;
  
  
          &lt;input type="submit" value="submit recipe"&gt;
  
  
       &lt;/form&gt;
  
  &lt;/div&gt;
  </code></pre>
  
  <p>I can't figure out why any of the added instructions return None.
  can anyone help me out?</p>