django formset验证。是否可以验证特定字段?

时间:2013-11-12 12:23:51

标签: django django-models django-forms django-templates django-views

1)我有一个5个字段的模型形式。

class myModel(models.Model):
     field1 = models.CharField(max_length=30, blank=True, null=True)
     field2 = models.CharField(max_length=30, blank=True, null=True)
     field3 = models.CharField(max_length=30, blank=True, null=True)
     field4 = models.CharField(max_length=30, blank=True, null=True)
     field5 = models.CharField(max_length=30, blank=True, null=True)

 class MyForm(ModelForm):
      class Meta:
          model=MyModel

2)假设我的formset有3种形式。

3)用户提交后,我验证表单集。

4)假设我有3个无效字段,并显示错误消息。

我的问题?

5)是否可以删除所有验证错误,除了保留任何一条错误消息[假设我以某种方式从UI识别此字段]

请建议。

1 个答案:

答案 0 :(得分:3)

我猜您正在使用modelformset_factory()来创建表单集。

您可以轻松地在modelformset_factory 中的formset参数中传递自定义formset,例如modelformset_factory(model_name, formset=CustomFormset)

因此,通过覆盖BaseModelFormSet并覆盖其干净方法来创建自定义Formset。

参考:https://docs.djangoproject.com/en/dev/topics/forms/modelforms/#overriding-clean-on-a-modelformset

在内部清理中,您将获得self.errors中的错误和self.forms中的表单。相应地操纵它们。