Я создал свою собственную модель пользователя в Django:
class User(AbstractBaseUser, PermissionsMixin):
email = models.EmailField(_('email address'), unique=True)
is_active = models.BooleanField(_('active'), default=False)
token_num = models.IntegerField(_('token count'), default=0)
money_num = models.IntegerField(_('money count'), default=0)
objects = UserManager()
USERNAME_FIELD = 'email'
REQUIRED_FIELDS = []
class Meta:
verbose_name = _('user')
verbose_name_plural = _('users')
Итак, я решил сделать свой собственный вид входа в систему.Вот оно:
def login(request):
if request.method == "POST":
form = LoginForm(request.POST)
email = request.POST.get('email')
password = request.POST.get('password')
user = authenticate(username=email, password=password)
if user is not None and user.is_active:
login(request, user)
return HttpResponseRedirect("/main/")
else:
form = LoginForm()
return render(request, 'registration/login.html', {'form': form})
Вот мой LoginForm:
class LoginForm(forms.Form):
user_email = forms.EmailField(max_length=255)
password = forms.CharField(max_length=255)
class Meta:
model = User
fields = ('email', 'password')
И мой login.html:
{% extends 'base.html' %}
{% block title %}Login{% endblock %}
{% block content %}
<h2>Login</h2>
<form method="post">
{% csrf_token %}
{% for field in form %}
<p>
{{ field.label_tag }}<br>
{{ field }}
{% if field.help_text %}
<small style="display: none">{{ field.help_text }}</small>
{% endif %}
{% for error in field.errors %}
<p style="color:red">{{ error }}</p>
{% endfor %}
</p>
{% endfor %}
<button type="submit">Login</button>
</form>
{% endblock %}
А вот мой urls.py:
urlpatterns = [
url(r'^log/$', views.login)
]
Таким образом, проблема в том, что когда я ввожу все данные на странице входа, пользователь не входит в систему, и меня не перенаправляют на главную страницу.Страница логина перезагружается и все.PS Я уже создал 1 пользователя с электронной почтой и паролем.Этот пользователь is_active
имеет значение True
(1)