Ваш сценарий действителен, но вы не должны блокировать это в представлении. Это должно быть частью проверки вашей формы, так как форма должна быть недействительной, если она пытается создать объект, который уже существует.
В вашей форме переопределите метод clean()
и вызовите ValidationError
, если другой объект с тем же родителем уже существует. Таким образом, вы можете отобразить полезную ошибку для пользователя, например, попросить пользователя обновить sh страницу (которая затем скроет форму). Ваше представление не нуждается в каких-либо изменениях, поскольку оно просто отображает неверную форму с ошибками.