Рубрики

RegexField — Джанго Формы

RegexField в Django Forms — это строковое поле, для строк малого и большого размера, которое можно сопоставить с определенным регулярным выражением. Он используется для получения выбранных текстовых вводов от пользователя. Виджет по умолчанию для этого ввода — TextInput . Он использует MaxLengthValidator и MinLengthValidator если max_length и min_length . В противном случае все входные данные действительны.

RegexField имеет следующие необязательные аргументы:

  • regex: — Регулярное выражение, указанное в виде строки или скомпилированного объекта регулярного выражения.
  • max_length и min_length : — если предоставлено, эти аргументы гарантируют, что длина строки не превышает или равна заданной длине.
  • strip: — если True (по умолчанию), значение будет удалено из начальных и конечных пробелов.

Синтаксис

field_name = forms.RegexField(**options)

Django form RegexField Объяснение

Иллюстрация RegexField с использованием примера. Рассмотрим проект с именем geeksforgeeks , в котором есть приложение с именем geeks .

Refer to the following articles to check how to create a project and an app in Django.

Введите следующий код в файл forms.py приложения geeks .

from django import forms

  
# создание формы

class GeeksForm(forms.Form):

    geeks_field = forms.RegexField(regex = "G.*s")

Добавьте приложение гиков в INSTALLED_APPS

# Определение приложения

  

INSTALLED_APPS = [

    'django.contrib.admin',

    'django.contrib.auth',

    'django.contrib.contenttypes',

    'django.contrib.sessions',

    'django.contrib.messages',

    'django.contrib.staticfiles',

    'geeks',

]

Теперь, чтобы преобразовать эту форму в представление, нам нужно представление и URL, сопоставленный с этим URL. Давайте сначала создадим представление в views.py приложения geeks,

from django.shortcuts import render

from .forms import GeeksForm

  
# Создайте свои взгляды здесь.

def home_view(request):

    context = {}

    context['form'] = GeeksForm()

    return render( request, "home.html", context)

Здесь мы импортируем эту конкретную форму из forms.py и создаем ее объект в представлении, чтобы ее можно было отобразить в шаблоне.
Теперь, чтобы инициировать форму Django, вам нужно создать home.html, где можно будет создавать вещи по своему усмотрению. Давайте создадим форму в home.html .

<form method = "POST">

    {% csrf_token %}

    {{ form }}

    <input type = "submit" value = "Submit">

</form>

Наконец, URL для сопоставления с этим представлением в urls.py

from django.urls import path

  
# импорт видов из views..py

from .views import home_view

  

urlpatterns = [

    path('', home_view ),

]

Давайте запустим сервер и проверим, что на самом деле произошло, Запустите

Python manage.py runserver

Таким образом, поле geeks_field RegexField создается путем замены «_» на ««.

Как использовать RegexField?

RegexField используется для ввода выделенного текста небольшого размера в базу данных. Можно ввести имя конкретной сущности, адрес электронной почты и т. Д. До сих пор мы обсуждали, как реализовать RegexField, но как использовать его в представлении для выполнения логической части. Для выполнения некоторой логики нам нужно получить значение, введенное в поле, в экземпляр строки Python.
В views.py,

from django.shortcuts import render

from .forms import GeeksForm

  
# Создайте свои взгляды здесь.

def home_view(request):

    context ={}

    form = GeeksForm()

    context['form']= form

    if request.POST:

        temp = request.POST['geeks_field']

        print(temp)

    return render(request, "home.html", context)

Теперь давайте попробуем ввести что-то еще в поле.

Поскольку его необходимо проверить в соответствии с предоставленным регулярным выражением, входные данные должны начинаться с «G» и заканчиваться «s». Давайте введем «GeeksForGeeks» в поле

Теперь эти данные можно получить, используя соответствующий словарь запросов. Если метод GET, данные будут доступны в request.GET, а если post, то request.POST соответственно. В приведенном выше примере у нас есть значение в temp, которое мы можем использовать для любых целей.

Основные Полевые Аргументы

Аргументы основного поля — это аргументы, данные каждому полю для применения какого-либо ограничения или передачи определенной характеристики конкретному полю. Например, добавление аргумента required = False в RegexField позволит пользователю оставить его пустым. Каждый конструктор класса Field принимает как минимум эти аргументы. Некоторые классы Field принимают дополнительные специфичные для поля аргументы, но всегда следует принимать следующее:

Field OptionsDescription
requiredBy default, each Field class assumes the value is required, so to make it not required you need to set required=False
labelThe label argument lets you specify the “human-friendly” label for this field. This is used when the Field is displayed in a Form.
label_suffixThe label_suffix argument lets you override the form’s label_suffix on a per-field basis.
widgetThe widget argument lets you specify a Widget class to use when rendering this Field. See Widgets for more information.
help_textThe help_text argument lets you specify descriptive text for this Field. If you provide help_text, it will be displayed next to the Field when the Field is rendered by one of the convenience Form methods.
error_messagesThe error_messages argument lets you override the default messages that the field will raise. Pass in a dictionary with keys matching the error messages you want to override.
validatorsThe validators argument lets you provide a list of validation functions for this field.
localizeThe localize argument enables the localization of form data input, as well as the rendered output.
disabledThe disabled boolean argument, when set to True, disables a form field using the disabled HTML attribute so that it won’t be editable by users.

Рекомендуемые посты:

RegexField — Джанго Формы

0.00 (0%) 0 votes