Поле URLField

Поле URLField предназначено для хранения URL-адресов в базе данных. В качестве базового класса используется CharField с максимальной длиной 200 символов по умолчанию. Поле автоматически проверяет корректность введенного URL-адреса и может быть использовано для хранения ссылок на веб-страницы, изображения, файлы и другие ресурсы.

Поле принимает следующие параметры: max_length - максимальная длина строки (по умолчанию 200), null - разрешает или запрещает хранение NULL в базе данных, blank - разрешает или запрещает пустые значения в формах, default - значение по умолчанию. Также доступен параметр unique, который делает URL-адрес уникальным в таблице.

Синтаксис

pythonfrom django.db import models

class MyModel(models.Model):
  url = models.URLField(max_length=200, null=False, blank=False, default='')

Пример

Создадим модель статьи с полем для URL-адреса источника:

pythonfrom django.db import models

class Article(models.Model):
  title = models.CharField(max_length=100)
  source_url = models.URLField(max_length=300, blank=True, null=True)
  published_at = models.DateTimeField(auto_now_add=True)

  def __str__(self):
    return self.title

Пример

Создадим запись с URL-адресом и проверим валидацию:

pythonfrom myapp.models import Article

article = Article.objects.create(
  title="Django Tutorial",
  source_url="https://example.com/django-tutorial"
)

print(article.source_url)

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

python"https://example.com/django-tutorial"

Пример

Найдем все статьи, у которых поле source_url содержит ссылку на определенный домен:

pythonfrom myapp.models import Article

res = Article.objects.filter(source_url__icontains='example.com')
for article in res:
  print(article.title, article.source_url)

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

python"Django Tutorial https://example.com/django-tutorial"

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

  • поле CharField,
    которое используется для хранения коротких текстовых данных
  • поле EmailField,
    которое предназначено для хранения email-адресов
  • поле ImageField,
    которое используется для загрузки изображений
  • поле GenericIPAddressField,
    которое хранит IP-адреса