可以在表单中绕过验证规则吗?

时间:2010-11-01 17:33:52

标签: django validation forms

我有一个简单的时事通讯应用程序,其订阅模式包括字段电子邮件和城市。 在这个模型中,我设置了unique_together('email','city')以避免订阅重复。

class Subscription(models.Model):

    email = models.EmailField(_('Email'), max_length=75)
    create_date = models.DateField(_("Creation Date"))
    city = models.ForeignKey(City)

    class Meta:
        unique_together = ('email', 'city')

我从这个模型创建了一个forms.ModelForm:

class SubscriptionForm(forms.ModelForm):

    class Meta:
        model = Subscription

当我创建订阅时,这是可以的,但是当我想删除订阅时,使用相同的表单,由于模型中的unique_together,表单在设置现有电子邮件/主题对时不会验证。有没有办法绕过这个验证规则,还是应该写一个特定的表格来取消订阅?

谢谢

1 个答案:

答案 0 :(得分:0)

您可以覆盖unique_together中的SubscriptionForm,但这会从您的表单中删除验证(并且在您保存模型时会失败)。 或者,您可以创建一个新的UnSubscriptionForm,仅在取消订阅时覆盖此unique_together设置。