代码之家  ›  专栏  ›  技术社区  ›  Eric Schoonover thSoft

Django ModelForm是有效的()错误类型

  •  2
  • Eric Schoonover thSoft  · 技术社区  · 14 年前

    我有一个 EmailField(primary_key=True) . 我用的是 ModelForm form.is_valid() .

    我在这个领域看到了两种类型的错误。一个是主键上的唯一值约束(这个电子邮件地址已经存在)。另一个是无效的电子邮件地址错误。

    2 回复  |  直到 14 年前
        1
  •  5
  •   Eric Schoonover thSoft    14 年前

    我想办法实现我想要的。我的目标是避免唯一的约束,以便在提交重复电子邮件地址的情况下,我可以忽略表单提交并成功(从用户的角度来看,因为他们的提交是noop)。

    首先覆盖 validate_unique ModelForm 定义。

    from django.forms import ModelForm
    from apps.announcer.models import Subscriber
    
    class SubscribeForm(ModelForm):
        class Meta:
            model = Subscriber
            exclude = ('created',)
    
        def validate_unique(self):
            pass
    

    因为 验证唯一性 form.save() 呼叫 entity = form.save(commit=False) entity.save() .

        2
  •  1
  •   Mike DeSimone    14 年前

    你能先检查一个预先存在的密钥,然后调用 is_valid()