имя ‘логин’ не определено. питон (джанго)

У меня одна проблема, я хочу создать пользователя и после входа в систему. я создаю пользователя, но не могу войти. моя ошибка —> имя логина не определено . из django.contrib.auth.views импортировать логин. Я тоже пробовал, но это не сработало

где у меня проблема и как ее решить? Я не мог найти способ решить проблему в Google. пожалуйста, помогите мне, заранее спасибо.

views.py

  из django.shortcuts import renderfrom django.http import HttpResponseimport datetimefrom django.contrib.  auth import authenticationfrom home.forms import SignUpdef regform (request): if request.method == 'POST': form = SignUp (request.POST) if form.is_valid (): form.save () email = form.cleaned_data.get  ('электронная почта') raw_password = form.cleaned_data.get ('password1') user = Authenticate (email = email, password = raw_password) login (request, user) return redirect ('home') else: form = SignUp () return  render (запрос, 'home/home.html', {'form': form})  

models.py

   from django.contrib.auth.models import AbstractUser, BaseUserManagerfrom django.db import modelsfrom django.utils.translation import ugettext_lazy as _from django import formsclass UserManager (BaseUserManager): "" "Определите менеджер моделей для модели пользователя без поля username.  "" use_in_migrations = True def _create_user (сам, электронная почта, пароль, **  extra_fields): "" "Создайте и сохраните пользователя с указанным адресом электронной почты и паролем." "" если не адрес электронной почты: raise ValueError ('Указанный адрес электронной почты должен быть установлен') email = self.normalize_email (email) user = self.model  (email = email, ** extra_fields) user.set_password (password) user.save (using = self._db) return user def create_user (self, email, password = None, ** extra_fields): "" "Создать и сохранить  обычный пользователь с указанным адресом электронной почты и паролем. "" "extra_fields.setdefault ('is_staff', False) extra_fields.setdefault ('is_superuser', False) return self._create_user (email, password, ** extra_fields) def create_superuser (self,  адрес электронной почты, пароль, ** extra_fields): "" "Создайте и сохраните SuperUser с указанным адресом электронной почты и паролем." "" extra_fields.setdefault ('is_staff', True) extra_fields.setdefault ('is_superuser', True) if extra_fields.  get ('is_staff') не True: поднять ValueError ('Суперпользователь должен иметь is_staff = True.'), если extra_fields.get ('is_superuser') не True: поднять ValueError ('Суперпользователь должен иметь is_superuser = True.') ret  urn self._create_user (email, password, ** extra_fields) class User (AbstractUser): "" "Модель пользователя." "" username = None email = models.EmailField (_ ('email address'), unique = True) mob  = models.IntegerField (по умолчанию = None) USERNAME_FIELD = 'email' REQUIRED_FIELDS = [] objects = UserManager ()  

forms.py

  из форм импорта django из django. contrib.  .CharField (label = 'Пароль', widget = forms.PasswordInput) password2 = forms.CharField (label = 'Подтверждение пароля', widget = forms.PasswordInput) def clean_password2 (self): # Убедитесь, что две записи пароля совпадают с password1 =  self.cleaned_data.get ("password1") password2 = self.cleaned_data.get ("password2") if password1 и password2 и password1! = password2: поднять формы.ValidationError ("Пароли не совпадают") return password2 def save (  self, commit = True): # Сохранить предоставленный пароль в хешированном формате user = super (). save (commit = False) user.set_password (self.cleaned_data ["password1"]) if commit: user.save () return user  class Meta: model = User fields = ("email", 'password1', 'password2', 'first_name', 'last_nam  e ',' mob ')  

В этом случае ошибка очевидна, логин не определен. Что за ошибка при импорте? Возможно, вы пропустили передачу запроса или импорт был неправильным.

Попробуйте это, из документации:

  ... из django.contrib.auth import authentication, login ... def regform (request  ): если request.method == 'POST': form = SignUp (request.POST) if form.is_valid (): ... user = Authenticate (request, email = email, password = raw_password) login (request, user)  ...  


/vaadin-login

Живая демонстрация ↗ -emoji> | Документация по API ↗

Вход в Vaadin состоит из двух компонентов:

— это веб-компонент, обеспечивающий безболезненный вход в систему, часть компонентов Vaadin. Компонент показывает внутри наложения.

  

— это веб-компонент, предоставляющий форму, требующую от пользователей входа в систему в приложение.

   

Установка

Установить vaadin-login :

 npm i @ vaadin/vaadin-login --save 

После установки импортируйте его в свое приложение:

 import '@ vaadin/vaadin-login/vaadin-login-overlay.js';  

Начало работы

Компоненты Vaadin по умолчанию используют тему Lumo.

Чтобы использовать тему материала, импортируйте соответствующий файл из папки theme/material .

Точки входа

  • Компонент с темой Lumo:

    theme/lumo/vaadin-login-overlay.js theme/lumo/vaadin-login-form.js

  • Компонент с темой материала:

    theme/material/vaadin-login-overlay.jstheme/material/vaadin-login-form.js

  • Псевдонимы для тематических компонентов lumo:

    vaadin-login-overlay.js vaadin -login-form.js

Запуск документации и тестов API в браузере

  1. Разветвите репозиторий vaadin-login и клонируйте его локально.

  2. Убедитесь, что у вас есть node.js 12 .x установлен.

  3. Убедитесь, что у вас установлен npm.

  4. Когда в vaadin-login , запустите npm install , чтобы установить зависимости.

  5. Запустите npm start , браузер автоматически откроет документацию по API компонента.

  6. Вы также можете открывать визуальные тесты, например:

  • http://127.0.0.1:3000/test/visual/default.html

Запуск тестов из командной строки

  1. Находясь в каталоге vaadin-login , запустить npm test

Отладка тестов в браузере

  1. Выполнить npm run debug , затем выберите ручной режим (M) и откройте ссылку в браузере.

Следуя стилю кодирования

Мы использование ESLint для линтинга кода JavaScript. Вы можете проверить, соответствует ли ваш код нашим стандартам, запустив npm run lint , который будет автоматически связывать все файлы .js .

Большое спасибо

Платформа для кроссбраузерного тестирования и открытый исходный код

Содействие

Чтобы внести свой вклад в компонент, сначала прочтите руководство.

Лицензия

Apache License 2.0

Vaadin собирает статистику использования времени разработки, чтобы улучшить этот продукт . Подробную информацию и информацию об отказе можно найти на странице https://github.com/vaadin/vaadin-usage-statistics.

Оцените статью
clickpad.ru
Добавить комментарий