Поле URLField
Поле URLField применяется в формах Django для ввода веб-адресов. Оно автоматически проверяет, что введенное значение является корректным URL-адресом, соответствующим схеме HTTP, HTTPS или FTP. Поле может принимать необязательные параметры, такие как максимальная длина, обязательность заполнения и другие стандартные атрибуты полей форм.
Синтаксис
from django import forms
class MyForm(forms.Form):
url = forms.URLField(max_length=200, required=True)
Пример
Создадим форму с полем для ввода URL-адреса веб-сайта:
from django import forms
class WebsiteForm(forms.Form):
name = forms.CharField(max_length=100)
url = forms.URLField(label="Website URL", max_length=200)
Результат выполнения кода:
"Form created with URLField"
Пример
Используем поле URLField с дополнительными параметрами валидации:
from 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"
)
Результат выполнения кода:
"ProfileForm created with optional URLField"
Пример
Обработаем данные формы с полем URLField в представлении:
from 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})
Результат выполнения кода:
"https://example.com/page"
Пример
Используем поле URLField с пользовательскими сообщениями об ошибках:
from 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'
}
)
Результат выполнения кода:
"SocialForm with custom error messages"
Смотрите также
-
поле
CharField,
которое используется для ввода текстовых строк -
поле
EmailField,
которое используется для ввода email-адресов -
поле
SlugField,
которое используется для ввода URL-дружественных строк -
валидатор
URLValidator,
который выполняет валидацию URL-адресов