Как остановить 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, чтобы сказать конечному пользователю, что ему нужно выбрать другое имя пользователя.

Вернуться на верх