Как исправить ошибку UNIQUE constraint failed: auth_user.username

i was trying to use sending email modual from django in order to send sign up email for each user when sign up im facing this error :UNIQUE constraint failed: auth_user.username

` i was trying to use sending email modual from django in order to send sign up email for each user when sign up im facing this error :UNIQUE constraint failed: auth_user.username`

# this is my views.py
from django.shortcuts import render ,redirect
from django.contrib.auth import login
from django.contrib.auth.decorators import login_required
from . import forms

# Create your views here.
def home(request):
    return render(request,'home.html')

@login_required
def customer_page(request):
    return render(request,'home.html')
@login_required
def courier_page(request):
    return render(request,'home.html')

def sign_up(request):
    form = forms.SignUPForm()
    if request.method=='POST':
        form=forms.SignUPForm(request.POST)
        
        if form.is_valid():
            email=form.cleaned_data.get('email').lower()
            
            user= form.save(commit=False)
            user.useranme = email
            user.save() 
            
            login(request,user,backend='django.contrib.auth.backends.ModelBackend')
            return redirect('/')
                    
    return render(request,'sign_up.html',{
        'form':form
    })
` now i have created signals.py to use email forms `
# my signals.py file
from email.base64mime import body_decode
from django.db.models.signals import post_save
from django.dispatch import receiver
from django.core.mail import send_mail
from django.conf import settings
from django.contrib.auth.models import User
from django.template.loader import render_to_string
from django.core import mail
connection = mail.get_connection()
@receiver(post_save,sender=User)
def send_welcome_email(sender,instance,created,**kwarg):
    if created and instance.email:
        connection.open()
        body=render_to_string(
            'welcome_email_template.html',
            {
                'name':instance.get_full_name()
            }
        )
        email2 = mail.EmailMessage(
    'Welcome to fast Parcle',
     body,
    settings.DEFAULT_FROM_EMAIL,
    [instance.email],
    fail_silently=False,
)
        connection.send_messages([email2])
        connection.close() 

Кто-то регистрируется с уже существующим именем пользователя. Поле username в таблице auth_user имеет ограничение уникальности, которое не позволяет вставить строку с именем пользователя, которое уже существует в таблице.

спасибо @Eshter решение было таким, как указано выше: создать "пароль приложения" для этой конкретной программы, который вы узнаете, если перейдете по ссылке, которую они дали вам в сообщении об ошибке, и использовать этот созданный пароль внутри кода точно так же, как я использовал обычный пароль

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