DJANGO РЕГИСТРАЦИЯ ПО НОМЕРУ ТЕЛЕФОНА

В Django существуют различные способы организации регистрации пользователей. Один из них - это регистрация по номеру телефона.

Для реализации этой функции необходимо выполнить несколько шагов. Во-первых, необходимо установить дополнительный пакет django-phonenumber-field:

pip install django-phonenumber-field

Затем в models.py нужно создать модель пользователя, в которой будет использоваться PhoneNumberField для хранения номера телефона.

from django.contrib.auth.models import AbstractBaseUser, BaseUserManagerfrom phonenumber_field.modelfields import PhoneNumberFieldclass CustomUserManager(BaseUserManager): def create_user(self, phone_number, password=None, **extra_fields): if not phone_number: raise ValueError('The Phone Number is required!') user = self.model( phone_number=self.normalize_phone_number(phone_number), **extra_fields ) user.set_password(password) user.save() return user def create_superuser(self, phone_number, password=None, **extra_fields): extra_fields.setdefault('is_staff', True) if extra_fields.get('is_staff') is not True: raise ValueError('Superuser must have is_staff=True.') if extra_fields.get('is_superuser') is not True: raise ValueError('Superuser must have is_superuser=True.') return self.create_user(phone_number, password, **extra_fields) def normalize_phone_number(self, phone_number): # implement your own logic here for normalizing phone numbers return phone_numberclass CustomUser(AbstractBaseUser): phone_number = PhoneNumberField(unique=True) USERNAME_FIELD = 'phone_number' REQUIRED_FIELDS = [] objects = CustomUserManager()

Далее нужно создать форму регистрации пользователей:

from django import formsfrom phonenumber_field.formfields import PhoneNumberFieldclass CustomUserCreationForm(forms.ModelForm): phone_number = PhoneNumberField() class Meta: model = CustomUser fields = ['phone_number']

И, наконец, нужно создать представление (view) для обработки формы:

from django.shortcuts import render, redirectfrom django.contrib import messagesfrom .forms import CustomUserCreationFormdef register(request): if request.method == 'POST': form = CustomUserCreationForm(request.POST) if form.is_valid(): form.save() messages.success(request, 'Account created successfully') return redirect('home') else: form = CustomUserCreationForm() return render(request, 'registration/register.html', {'form': form})

Теперь пользователи могут зарегистрироваться на сайте, используя свой номер телефона.

Авторизация по номеру телефона и верификация смс на laravel и livewire

Django 4.0 - делаем регистрацию и аутентификацию пользователей без лишнего кода

Otp verification Django - SMS verification Django - Phone verification Django

#19. Регистрация пользователей на сайте - Django уроки

Делаем авторизацию по номеру телефона или email в Django

Django Middleware — что это, зачем и как использовать

Custom User Model - вход по phone, email, username 🔴 #009 Django СТРИМ

Базовая аутентификация пользователя в django, Django authentication system

Django. Урок 7. Регистрация, авторизация пользователей

BLGPG-D9457296E6E1-24-11-24-00

Новые материалы: