Входит ли пользователь django, когда регистрируется без функции authenticate () и login ()? - PullRequest
0 голосов
/ 22 мая 2019

Я практикую регистрацию пользователей django, используя классы UserCreationForm() и User().

Мой код froms.py.

from django.contrib.auth.forms import UserCreationForm
from django.contrib.auth.models import User
from django import forms

class user(UserCreationForm):
    email = forms.EmailField()

    class Meta:
        model = User
        fields = ('username', 'email', 'password1', 'password2')

Мой код views.py для этого:

def register(request):

if request.method == 'POST':
    form = forms.user(request.POST)
    if form.is_valid():
        form.save(commit=False)
        form.email = form.cleaned_data.get('email')
        form.save()
        #context = {'form':form, 'er':form.errors}
        return redirect('register')
else:
    form = forms.user()
    context = {'form':form, 'er':form.errors}
    return render(request, 'register/register.html', context)

Я не использовал authenticate() или login() в системе регистрации.

У меня три вопроса. ** В случае использования того же браузера.

  1. Когда я регистрируюсь, пользователь автоматически входит в систему и создает номер сеанса или нет?
  2. Если вход в систему и создание значения сеанса, что произойдет, если регистрация снова с новым значением из того же браузера? Система удаляет предыдущий сеанс и генерирует новый сеанс, или что-то еще происходит.
  3. Если я использовал authenticate() и login(), что произойдет, если я попытаюсь зарегистрироваться снова?

1 Ответ

0 голосов
/ 23 мая 2019
  • Это зависит от вашей реализации. Пока вы только сохраняете пользователя, пользователь записывается только в вашу БД. https://docs.djangoproject.com/en/2.2/topics/auth/default/#how-to-log-a-user-in
  • Если вы успешно создали пользователя, вы не можете снова создать пользователя с тем же именем пользователя, поскольку имя пользователя является уникальным идентификатором в модели пользователя Django.

Чтобы узнать, записано ли что-то в вашу сессию, вы можете заглянуть в свою БД. Кроме того, вы можете рассмотреть возможность использования письма активации .

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