Почему, когда я вхожу в Django, выдает ошибку, что имя пользователя или пароль не существуютPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Почему, когда я вхожу в Django, выдает ошибку, что имя пользователя или пароль не существуют

Сообщение Anonymous »

У меня это есть в терминале

Код: Выделить всё

'invalid_login': 'Please enter a correct %(username)s and password.  Note that both fields may be case-sensitive.', 'inactive': 'This account is inactive.'}
[
но я сохранил свое имя пользователя и пароль через браузер, установив очень распространенное имя пользователя и пароль, которые невозможно написать неправильно.
возможно, проблема заключается в форма, которая используется при регистрации, или это происходит из-за формы регистрации, или это происходит из-за моделей?
Мои модели

Код: Выделить всё

from django.db import models
from django.contrib.auth.models import User

class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
first_name = models.CharField(max_length=255, blank=True)
last_name = models.CharField(max_length=255, blank=True)
bio = models.CharField(max_length=255, blank=True)
image = models.ImageField(blank=True)

Формы:

Код: Выделить всё

from django import forms
from django.contrib.auth.models import User
from users.models import Profile
from django.contrib.auth.forms import AuthenticationForm, UserCreationForm

class ProfileRegistrationForm(UserCreationForm):
username = forms.CharField(required=True, max_length=30, widget=forms.TextInput(attrs={'placeholder': 'Enter username'}))
email = forms.EmailField(required=True, widget=forms.EmailInput(attrs={'placeholder': 'Enter email'}))
password1 = forms.CharField(widget=forms.PasswordInput(attrs={'placeholder': 'Enter password'}), label="Password")
password2 = forms.CharField(widget=forms.PasswordInput(attrs={'placeholder': 'Confirm password'}), label="Password")

class Meta:
model = User
fields = ['first_name', 'last_name','username', 'email', 'password1', 'password2']

def save(self, commit=True):
user = super().save(commit=False)
user.email = self.cleaned_data['email']

if commit:
user.save()

profile = Profile(user = user, first_name = self.cleaned_data['first_name'],
last_name = self.cleaned_data['last_name'])

if commit:
profile.save()

return profile

def clean_username(self):
username = self.cleaned_data['username'].lower()
new = User.objects.filter(username=username)
if new.count():
raise forms.ValidationError("User already exists")
return username

def clean_email(self):
email = self.cleaned_data['email'].lower()
new = User.objects.filter(email=email)
if new.count():
raise forms.ValidationError("Email already used")
return email

def clean_password2(self):
password1 = self.cleaned_data['password1']
password2 = self.cleaned_data['password2']
if password1 and password2 and password1 != password2:
raise forms.ValidationError("Passwords doesnt match")
return password2

class ProfileLoginForm(AuthenticationForm):
username = forms.CharField(max_length=255, required=True)
password = forms.CharField(widget=forms.PasswordInput)

class Meta:
model = User
fields = ['username', 'password']

и просмотр:

Код: Выделить всё

from django.shortcuts import render, redirect
from django.contrib.auth.decorators import login_required
from .forms import ProfileLoginForm, ProfileRegistrationForm
from django.contrib import messages
from django.contrib.auth import authenticate, login
from django.contrib.auth.forms import AuthenticationForm

def login_user(request):
if request.method == 'POST':
form = AuthenticationForm(request.POST)
if form.is_valid():
user = form.get_user()
login(request, user)
return redirect('profile')
else:
print(form.error_messages)
else:
form = ProfileLoginForm()
return render(request, 'login.html', {'form': form})

def register(request):
if request.method == 'POST':
form = ProfileRegistrationForm(request.POST)
if form.is_valid():
form.save()
messages.success(request, 'Registration success')
return redirect('login')
else:
form = ProfileRegistrationForm
return render(request, 'register.html', {'form': form})

@login_required
def profile(request):
render(request, 'profile.html', {'profile':  profile})

Сначала я пытался использовать пользовательскую форму входа, но затем начал использовать базовую форму аутентификации, но проблема все равно возникает

Подробнее здесь: https://stackoverflow.com/questions/791 ... -doesnt-ex
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»