我有一个简单的时事通讯应用程序,其订阅模式包括字段电子邮件和城市。 在这个模型中,我设置了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 :(得分:0)
您可以覆盖unique_together
中的SubscriptionForm
,但这会从您的表单中删除验证(并且在您保存模型时会失败)。
或者,您可以创建一个新的UnSubscriptionForm
,仅在取消订阅时覆盖此unique_together
设置。