Рубрики

SlugField — Django Forms

SlugField в Django Forms — это поле слагов, для ввода слагов для определенных URL или аналогичных. Это поле предназначено для использования в представлении модели SlugField в формах. Виджет по умолчанию для этого ввода — TextInput . Он использует validate_slug или validate_unicode_slug чтобы проверить, что данное значение содержит только буквы, цифры, подчеркивания и дефисы.

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

  • allow_unicode: — логическое значение, указывающее полю принимать буквы Unicode в дополнение к буквам ASCII. По умолчанию False.

Синтаксис

field_name = forms.SlugField(**options)

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

Иллюстрация SlugField с использованием примера. Рассмотрим проект с именем 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.SlugField( )

Добавьте приложение гиков в 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 geeks_field создается путем замены «_» на ««.

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

SlugField используется для ввода слагов в базу данных через формы Django. Можно ввести URL-адрес slug и т. Д. До сих пор мы обсуждали, как реализовать SlugField, но как использовать его в представлении для выполнения логической части. Для выполнения некоторой логики нам нужно получить значение, введенное в поле, в экземпляр строки 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)

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


Так как это нужно проверить в соответствии со слагом, давайте введем «slugfield-django-models» в поле


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

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

Аргументы основного поля — это аргументы, данные каждому полю для применения какого-либо ограничения или передачи определенной характеристики конкретному полю. Например, добавление аргумента required = False в SlugField позволит пользователю оставить его пустым. Каждый конструктор класса 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.

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

SlugField — Django Forms

0.00 (0%) 0 votes