2010-11-01 68 views
0

我有一个简单的通讯应用程序与领域的电子邮件和城市的订阅模型。 在此模型中,我设置了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而未设置现有电子邮件/主题对时的验证。有没有办法绕过这个验证规则,或者我应该写一个特定的表单来取消订阅?

谢谢

回答

0

你或许可以覆盖你的SubscriptionFormunique_together,但这会从你的表单中删除验证(当你将节省您的模型会失败)。 或者您可以创建一个新的UnSubscriptionForm,该设置将覆盖此unique_together设置仅用于取消订阅。

+0

我创建了一个RemoveSubscriptionForm ... – jul 2010-11-02 11:17:56