Найти - Пользователи
Полная версия: Почему я не могу авторизоваться сразу после регистрации?
Начало » Django » Почему я не могу авторизоваться сразу после регистрации?
1
mikefromru
Новый пользователь записываеться в базу, но не авторизуеться.Я получаю ошибку “'AnonymousUser' object has no attribute '_met”.

forms.py
 from django import forms
from django.contrib.auth.forms import UserCreationForm
from django.contrib.auth.models import User
from django.db import models
class RegistrationForm(UserCreationForm):
    email = forms.EmailField(required=True,   widget=forms.TextInput(attrs={'placeholder': 'E-mail'}))
    class Meta:
        model = User
        fields = ['username']
    def clean_email(self):
        email = self.cleaned_data['email']
        try:
            User.objects.get(email=email)
        except User.DoesNotExist:
            return email
        raise forms.ValidationError('email already exist')
    def save(self, commit=True):
        user = super(RegistrationForm, self).save(commit=False)
        user.username = self.cleaned_data['email']
        user.email = self.cleaned_data['email']
        if commit:
            user.is_active = False
        user.save()
        return user

views.py
 from django.shortcuts import render, HttpResponseRedirect
from django.contrib import auth
from .forms import RegistrationForm
def register(request):
    if request.method == "POST":
        form = RegistrationForm(request.POST)
        if form.is_valid():
            user = form.save()
            # user.set_password()
            user =   auth.authenticate(username=form.cleaned_data.get('username'), password=form.cleaned_data.get('password1'))
        auth.login(request, user)
        return HttpResponseRedirect('/profile')
    else:
         form = RegistrationForm()
    return render(request, 'fighter/register.html', {'form': form})   
Авторизация работала до того пока я не добавил поле емаил для регистрации.
Python 3.5 and Django1.10
inoks
Форма точна валидная?
mikefromru
inoks
Форма точна валидная?
Фиг знает.
FishHook
         if commit:
            user.is_active = False
Объясните зачем вы сделали пользователя неактивным? И как вы хотите его залогинить, если он неактивный?
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB