я получаю эту ошибку, когда я хочу, чтобы имя пользователя не повторялось в моей форме django. Я видел много таких ситуаций здесь в stackoverflow, но кажется, что каждая ситуация уникальна.
каждый раз, когда я хочу создать нового пользователя, выскакивает ошибка, и я не знаю, почему я пересматриваю свой код, но я не знаю, где может быть ошибка.
Я надеюсь, что кто-то может помочь мне с этой ошибкой. сожалеет
forms.py
from django import forms
from django.contrib.auth.models import User
class RegisterForm(forms.Form):
username = forms.CharField(required=True, min_length=4, max_length=50, widget=forms.TextInput(attrs={ 'class': 'form-control', 'id': 'username'}))
email = forms.EmailField(required=True, widget=forms.EmailInput(attrs={ 'class': 'form-control', 'id': 'email', 'placeholder': 'example@hotmail.com'}))
password = forms.CharField(required=True, widget= forms.PasswordInput(attrs={ 'class': 'form-control'}))
def clean_username(self):
username = self.cleaned_data.get('username')
if User.objects.filter(username=username).exists():
raise forms.ValidationError('El username ya esta en uso')
return username
def clean_email(self):
username = self.cleaned_data.get('email')
if User.objects.filter(email=email).exists():
raise forms.ValidationError('El email ya esta en uso')
return username
views.py
from django.shortcuts import render
from django.shortcuts import redirect
from django.contrib import messages
from django.contrib.auth import login
from django.contrib.auth import logout
from django.contrib.auth import authenticate
from django.contrib.auth.models import User
from .forms import RegisterForm
def index(request):
return render(request, 'index.html', {
'message': 'Listado De Productos',
'title': 'Productos',
'products': [
{'title': 'Playera', 'price': 5, 'stock': True}, #producto
{'title': 'Camisa', 'price': 7, 'stock': True},
{'title': 'Mochila', 'price': 20, 'stock': False},
]
})
def login_view(request):
if request.method == 'POST':
username = request.POST.get('username') #diccionario
password = request.POST.get('password')
user = authenticate(username=username, password=password)
if user:
login(request, user)
messages.success(request, 'Bienvenido {}'.format(user.username))
return redirect('index')
else:
messages.error(request, 'Usuario o Contrasena no validos')
return render(request, 'users/login.html', {})
def logout_view(request):
logout(request)
messages.success(request, 'Sesion Cerrada Exitosamente')
return redirect('login')
def register(request):
form = RegisterForm(request.POST or None)
if request.method == 'POST' and form.is_valid():
username = form.cleaned_data.get('username')
email = form.cleaned_data.get('email')
password = form.cleaned_data.get('password')
user = User.objects.create_user(username, email, password)
if user:
login(request, user)
messages.success(request, 'Usuario Creado Exitosamente')
return redirect('index')
return render(request, 'users/register.html', {'form': form})