Django регистрация | Как убрать выбор профиля для нового пользователя?

В Django есть встроенная функциональность для регистрации пользователей, которая использует аутентификацию Django и модель User. По умолчанию, при регистрации нового пользователя Django предоставляет выбор профиля для пользователя.

Однако, если вы хотите убрать выбор профиля для нового пользователя, вам понадобится немного изменить код в вашем проекте.

1. Создайте файл forms.py в вашем приложении Django (если его еще нет) или добавьте следующий код в существующий файл forms.py:

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

class UserRegistrationForm(UserCreationForm):
    class Meta:
        model = User
        fields = ("username", "password1", "password2")  # Указываете поля, которые хотите показать при регистрации пользователя

2. Вам также понадобится настроить представление (view) для обработки регистрации нового пользователя и использования созданной формы:

from django.shortcuts import render, redirect
from .forms import UserRegistrationForm

def register(request):
    if request.method == "POST":
        form = UserRegistrationForm(request.POST)
        if form.is_valid():
            form.save()
            return redirect("home")  # Перенаправляете пользователя на нужную страницу после регистрации
    else:
        form = UserRegistrationForm()
    return render(request, "registration/register.html", {"form": form})

3. В шаблоне register.html (папка templates/registration) отключите показ выбора профиля для нового пользователя:

{% extends "base.html" %}

{% block content %}
  <h2>Регистрация</h2>
  <form method="post">
    {% csrf_token %}
    {{ form.as_p }}
    <button type="submit">Зарегистрироваться</button>
  </form>
{% endblock %}

Теперь, когда новый пользователь будет регистрироваться, ему будет показываться только поле для имени пользователя и пароли. Если данные, введенные пользователем, будут проходить валидацию, пользователь будет создан без выбора профиля.

Надеюсь, это поможет вам убрать выбор профиля для нового пользователя в Django.