Django не очищает() набор форм

У меня есть три модели:

class Order(models.Model):
    ...

class Job(models.Model):
    ...

class Item(models.Model):         // Creates a record of a job for the order
    order = models.ForeignKey(
        Order,
        on_delete=models.CASCADE,
        blank=True,
    )
    job = models.ForeignKey(
        Job,
        on_delete=models.CASCADE,
    )

I am using a modified UpdateView to update the Order:

def get_job_forms(order, data=None):
    "" Takes order instance and creates a formset for it from Items""  
    JobModelFormset = modelformset_factory(
        Item,
        form=ItemForm,
        fields='__all__',
        formset=BaseModelFormSet,
    )
    qs = order.item_set.all()
    return JobModelFormset(data, queryset=qs)


class ObjectView(UpdateView):
    "" CreateView if called with is_create=True, else UpdateView""
    is_create = False

    def get_object(self, queryset=None):
        try:
            return super().get_object(queryset)
        except AttributeError:
            return None


class OrderUpdateView(WriteCheckMixin, ObjectView):
    model = Order
    form_class = OrderForm

    def form_valid(self, form):
        self.object = form.save()
        if not self.is_create: 
            formset = get_job_forms(self.object, self.request.POST)
            if formset.is_valid():
                for f in formset:
                    inst = f.save(commit=False)
                    inst.order = self.object
                    inst.save()
            else:
                return self.render_to_response(
                    self.get_context_data(form=form, formset=formset))
        return redirect(self.object.get_absolute_url())

    def get_context_data(self, *args, formset=None, **kwargs):
        context = super().get_context_data(*args, **kwargs)
        order = self.get_object()
        context['formset'] = formset if formset else get_job_forms(order)
        return context

When I call UpdateView it renders the template with one empty formset, like you would expect it. But if I call POST on the formset, formset.is_valid() returns True even if all the fields are empty. If I allow null values on the Item's fields, it would save an instance with empty fields, even though blank is set to False. What am I missing? Why doesn't it perform clean() on the formset.

class ItemForm(FormMixin):
    class Meta:
        model = Item
        fields = '__all__'

<form method='post' id="data_form">
    {% csrf_token %}
    {{ form.as_p}}
    <p> Jobs: </p>
    {{ formset.management_form }}
    <table>
      <tbody>
        {% for form in formset %}
          <tr>
              <td> {{ form.job }}{{ form.job.errors }}</td>
          </tr>
          {{ form.id }}
          {{ form.non_field_errors }}
        {% endfor %}
      </tbody>
    </table>
    {{ formset.non_form_errors }}
</form>
Вернуться на верх