2010-11-01 89 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