Как остановить django от вставки колонки в MySQL, если запись уже существует
Models.py:
class signUpUser(models.Model):
username = models.CharField(max_length = 100, unique = True)
passwd = models.TextField()
passwd2 = models.TextField()
email = models.EmailField(unique = True)
def save(self, *args, **kwargs):
if not self.pk:
self.passwd = make_password(self.passwd)
self.passwd2 = make_password(self.passwd2)
super(signUpUser, self).save(*args, **kwargs)
class Meta:
db_table = "users"
views.py
def signUp(request):
if request.method == "POST":
if request.POST.get('username') and request.POST.get('passwd') and request.POST.get('email'):
post = signUpUser()
post.username = request.POST.get('username')
post.passwd = request.POST.get('passwd')
post.passwd2 = request.POST.get('passwd2')
post.email = request.POST.get('email')
post.save()
messages.success(request, "Success.")
return render(request, "signup.html")
signup.html
Я пробовал искать в других вопросах SO и в документации django, похоже, что даже если я установил уникальность в True, она все равно обновляется в базе данных mysql с тем же именем пользователя. Как я могу остановить обновление базы данных и показать сообщение об ошибке в html, чтобы сказать конечному пользователю, что ему нужно выбрать другое имя пользователя.