РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
440 of 818 menu

Виджет URLInput

Виджет URLInput применяется для создания HTML-поля ввода URL-адресов в формах Django. По умолчанию он использует HTML-атрибут type="url", что позволяет браузеру проводить базовую валидацию формата введенного адреса. Виджет автоматически наследуется от TextInput и добавляет специфические атрибуты для работы с URL-адресами.

При использовании URLInput в форме, Django автоматически применяет валидатор URLValidator для проверки корректности введенного URL. Это гарантирует, что пользователь введет валидный адрес, соответствующий стандартам URL-спецификации.

Синтаксис

from django import forms from django.forms.widgets import URLInput class MyForm(forms.Form): url_field = forms.URLField(widget=URLInput(attrs={ 'placeholder': 'https://example.com', 'class': 'form-control' }))

Пример . Использование в форме

Давайте создадим форму для ввода веб-сайта пользователя:

from django import forms from django.forms.widgets import URLInput class UserWebsiteForm(forms.Form): name = forms.CharField(max_length=100) website = forms.URLField( widget=URLInput(attrs={ 'placeholder': 'Enter your website URL', 'class': 'url-input', 'size': 50 }) )

Результат отображения виджета в HTML:

<input type="url" name="website" placeholder="Enter your website URL" class="url-input" size="50" required id="id_website">

Пример . Обработка данных формы

Рассмотрим полный пример обработки формы с виджетом URLInput:

from django import forms from django.forms.widgets import URLInput class WebsiteForm(forms.Form): site_name = forms.CharField(max_length=100) site_url = forms.URLField(widget=URLInput(attrs={'class': 'url-field'})) # В view-функции def process_form(request): if request.method == 'POST': form = WebsiteForm(request.POST) if form.is_valid(): site_name = form.cleaned_data['site_name'] site_url = form.cleaned_data['site_url'] print(f"Site name: {site_name}, URL: {site_url}")

Результат валидации корректного URL:

"Site name: My Blog, URL: https://myblog.com"

Пример . С атрибутом readonly

Виджет позволяет добавлять атрибут readonly для запрета редактирования поля:

from django import forms from django.forms.widgets import URLInput class ReadonlyURLForm(forms.Form): profile_url = forms.URLField( widget=URLInput(attrs={ 'readonly': 'readonly', 'value': 'https://profile.example.com' }) )

Результат отображения виджета в HTML:

<input type="url" name="profile_url" value="https://profile.example.com" readonly required id="id_profile_url">

Смотрите также

  • виджет TextInput,
    базовый виджет для ввода текста
  • виджет EmailInput,
    виджет для ввода email-адресов
  • поле URLField,
    поле формы для URL-адресов
  • валидатор URLValidator,
    валидатор для проверки URL-адресов
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить