Я ищу хороший пример того, как добиться следующего:
Я хотел бы использовать get_or_create, чтобы проверить, существует ли объект в моей базе данных. Если это не так, то он будет создан. Если он существует, я не буду создавать новый объект, но должен вызвать ошибку формы, чтобы сообщить пользователю, что ему нужно ввести другие данные (например, другое имя пользователя).
Представление содержит:
p, created = Person.objects.get_or_create(
email = registration_form.cleaned_data['email'],
defaults = {
'creationDate': datetime.datetime.now(),
'dateOfBirth': datetime.date(1970,1,1)
})
Таким образом, 'p' будет содержать существующего Человека, если он существует, или нового Человека, если нет. Я хотел бы применить к логическому значению в «созданном», чтобы пропустить сохранение Персоны, повторно отобразить форму регистрации и вызвать соответствующую ошибку проверки формы.
Альтернативой, которую я рассматриваю, является проверка в пользовательском методе проверки формы, чтобы увидеть, существует ли Person с данными в предоставленном поле 'email', и просто выдача ошибки проверки.