Рубрики
Без рубрики

UserCrationform с несколькими полями в Django.

Формы создания пользователей в Django обеспечивают очень простой и безопасный способ создания формы регистрации с помощью Drawin … Помечено Django, Python, CodeNewie.

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

Сначала создайте FORMSS.PY FILE в вашем приложении, которое мы назовем «my_app» и в верхней части, сделайте следующий импорт

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

Мы импортируем следующие зависимости от Django. Они включают формы Django, модель пользователей по умолчанию и форму пользовательской сети.

Далее создайте класс, который наследует от UserCreationForm. Мы назваем наш класс Userform.

Обратите внимание, что USERCREATIONFOREFERFOREFERFORM по умолчанию предоставляет только три параметра, имя пользователя, пароль1 и пароль2. Однако мы можем изменить это, чтобы включить больше полей.

Для этого давайте предположим, что мы хотим добавить три новых поля. Имя, фамилия и адрес электронной почты, который не приходил изначально. Все, что нам нужно сделать, это добавить больше полей формы, которые несут аналогичные атрибуты на поля модели.

class UserForm(UserCreationForm):
    first_name = forms.CharField()
    last_name = forms.CharField()
    email = forms.EmailField()

Далее мы добавляем мета-класс, в котором есть две функции: 1), чтобы указать, какую модель мы используем, какие в этом случае – это модель пользователя по умолчанию 2), чтобы показать, какие поля, которые мы хотим включить в нашу окончательную форму, а какое порядок они должны включать в себя оказываться на нашей странице.

После чего мы затем включаем по умолчанию три (3) поля, которые поставляются с формой создания пользователей, которые называются «именем пользователя», «Password1» и «Password2»

class UserForm(UserCreationForm):
    first_name = forms.CharField()
    last_name = forms.CharField()
    email = forms.EmailField()

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

Для того, чтобы использовать нашу недавно созданную пользовательформу, нам нужно импортировать его в нашу просмотр файла.

from my_app.forms import UserForm

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

Однако, если запрос не является запросом на запись, мы просто создаем экземпляр пустой пользовательской формы.

Наконец, мы проходим в переменной форме как словарь контекста, чтобы сделать нашу информацию о пользователе в нашем шаблоне.

def register(request):
    if request.method == 'POST':
        form = UserForm(request.POST)
        if form.is_valid():
            form.save()
            return redirect('home')
    else:
        form = UserForm()


    return render(request, 'register.html', {'form': form})

В нашем Register.html шаблон; Мы создаем

Теги, добавьте нашу Пост Запрос и включить наши CSRF_Token и пройти в нашем контексте форма

{% csrf_token %} {{form.as_p}}

Это будет хорошо быстрой форму с нашими шестью (6) полями, а запрос на почту будет обрабатываться и сохранен в нашей базе данных. Этот метод отображает мощность USERCREATIONFORM и убирает необходимость вручную создать сырую HTML-форму со всеми применимыми полями.

Оригинал: “https://dev.to/yahaya_hk/usercreation-form-with-multiple-fields-in-django-ek9”