Добрый день, у меня есть проблема, которую я не понимаю как решить, у меня есть функция, которая в зависимости от нажатой кнопки передаёт запрос либо на регистрацию, либо на авторизацию, с регистрацией вопросов нету, а вот авторизация не в какую не хочет работать.
views.py
def Reqistration(request):
form = SignupForm()
if request.method == 'POST':
if 'registration_submit' in request.POST: # Проверяем, была ли нажата кнопка "Registration"
form = SignupForm(request.POST)
if form.is_valid():
obj = User()
obj.username = form.cleaned_data['username']
obj.password1 = form.cleaned_data['password1']
obj.save()
new_profile = Employee(
name=obj.username,
password=obj.password1
)
new_profile.save()
return redirect('DetailCVE')
else:
messages.error(request, f"Пользователь с таким именем уже существует")
elif 'login_submit' in request.POST: # Проверяем, была ли нажата кнопка "Enter"
form = SignupForm(request.POST)
if form.is_valid():
username = form.cleaned_data['username']
password = form.cleaned_data['password1']
user = authenticate(request, username=username, password=password)
if user:
login(request, user)
return redirect('DetailCVE')
else:
print('fdsfds')
# messages.error(request, 'Invalid password or login!')
return render(request, 'index.html', {'form': form})
forms.py
class EmployeeForm(forms.ModelForm):
class Meta:
model = Employee
fields = '__all__'
widgets = {
'name': forms.TextInput(attrs={'id': 'username', 'placeholder': 'Username', 'type': 'text'}),
'password': forms.PasswordInput(attrs={'id': 'password', 'placeholder': 'Password', 'type': 'password'})
}
exclude = ['api']
class SignupForm(UserCreationForm):
class Meta:
model = User
fields = ('username', 'password1', 'first_name', 'last_name', 'email')
widgets = {
'username': forms.TextInput(attrs={'id': 'username', 'placeholder': 'Username', 'type': 'text'}),
'password1': forms.PasswordInput(attrs={'id': 'password', 'placeholder': 'Password', 'type': 'password'}),
}
exclude = ['first_name', 'last_name', 'email']
def __init__(self, *args, **kwargs):
super(SignupForm, self).__init__(*args, **kwargs)
self.fields.pop('password2')
models.py
class Employee(models.Model):
name = models.CharField('name', max_length=100)
password = models.CharField('password', max_length=100, default=0)
api = models.CharField('api', max_length=100)
class Meta:
db_table = 'users'
verbose_name = 'User'
verbose_name_plural = 'Users'
def __str__(self):
return self.name
index,html
{% block content %}
<form method="post">
{% csrf_token %}
{{ form.username}}
{{ form.password1 }}
{{ form.password2 }}
<div class="checkbox">
<input id="checkbox" type="checkbox" placeholder="Remember login details">
<p>Remember login details</p>
</div>
<div class="buttonsSuccess">
<button name="login_submit"type="submit" class="enterBtn">Enter <img src="{% static 'main/img/Right 1.png' %}" alt=""></button>
<button name="registration_submit" type="submit" class="regBtn" >Registration</button>
</div>
{% if messages %}
{% for message in messages %}
<p>{% if message.tags %} class="{{ message.tags }}"{% endif %}>{{ message }}</p>
{% endfor %}
{% endif %}