Не удалось выполнить ограничение UNIQUE: auth_user.username unityError - PullRequest
0 голосов
/ 11 января 2020

я получаю эту ошибку, когда я хочу, чтобы имя пользователя не повторялось в моей форме 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})

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...