Поле URLField

Поле URLField применяется в формах Django для ввода веб-адресов. Оно автоматически проверяет, что введенное значение является корректным URL-адресом, соответствующим схеме HTTP, HTTPS или FTP. Поле может принимать необязательные параметры, такие как максимальная длина, обязательность заполнения и другие стандартные атрибуты полей форм.

Синтаксис

pythonfrom django import forms

class MyForm(forms.Form):
  url = forms.URLField(max_length=200, required=True)

Пример

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

pythonfrom django import forms

class WebsiteForm(forms.Form):
  name = forms.CharField(max_length=100)
  url = forms.URLField(label="Website URL", max_length=200)

Результат выполнения кода:

python"Form created with URLField"

Пример

Используем поле URLField с дополнительными параметрами валидации:

pythonfrom django import forms

class ProfileForm(forms.Form):
  avatar = forms.URLField(
    label="Avatar URL",
    max_length=500,
    required=False,
    help_text="Enter the URL of your avatar image"
  )

Результат выполнения кода:

python"ProfileForm created with optional URLField"

Пример

Обработаем данные формы с полем URLField в представлении:

pythonfrom django import forms
from django.shortcuts import render

class LinkForm(forms.Form):
  title = forms.CharField(max_length=200)
  link = forms.URLField(max_length=300)

def submit_link(request):
  if request.method == 'POST':
    form = LinkForm(request.POST)
    if form.is_valid():
      res = form.cleaned_data['link']
      print(res)
  else:
    form = LinkForm()
  return render(request, 'submit.html', {'form': form})

Результат выполнения кода:

python"https://example.com/page"

Пример

Используем поле URLField с пользовательскими сообщениями об ошибках:

pythonfrom django import forms

class SocialForm(forms.Form):
  website = forms.URLField(
    label="Website",
    max_length=200,
    error_messages={
      'invalid': 'Please enter a valid URL address',
      'required': 'Website URL is required'
    }
  )

Результат выполнения кода:

python"SocialForm with custom error messages"

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

  • поле CharField,
    которое используется для ввода текстовых строк
  • поле EmailField,
    которое используется для ввода email-адресов
  • поле SlugField,
    которое используется для ввода URL-дружественных строк
  • валидатор URLValidator,
    который выполняет валидацию URL-адресов