Я понял, как добиться того, чего хотел. Моя цель состояла в том, чтобы избежать уникального ограничения, чтобы я мог молча игнорировать отправку формы и преуспеть (с точки зрения пользователя, поскольку их отправка была пустяком) в случае отправки дублирующего адреса электронной почты.
Сначала переопределите метод 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
Поскольку метод validate_unique
был преобразован в noop, представление должно выполнить любую необходимую ему проверку. Поэтому вместо звонка form.save()
звоните entity = form.save(commit=False)
. Выполните необходимую проверку сущности и при необходимости вызовите entity.save()
.