Поле URLField
Поле URLField предназначено для хранения URL-адресов в базе данных. В качестве базового класса используется CharField с максимальной длиной 200 символов по умолчанию. Поле автоматически проверяет корректность введенного URL-адреса и может быть использовано для хранения ссылок на веб-страницы, изображения, файлы и другие ресурсы.
Поле принимает следующие параметры: max_length - максимальная длина строки (по умолчанию 200), null - разрешает или запрещает хранение NULL в базе данных, blank - разрешает или запрещает пустые значения в формах, default - значение по умолчанию. Также доступен параметр unique, который делает URL-адрес уникальным в таблице.
Синтаксис
from django.db import models
class MyModel(models.Model):
url = models.URLField(max_length=200, null=False, blank=False, default='')
Пример
Создадим модель статьи с полем для URL-адреса источника:
from 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-адресом и проверим валидацию:
from myapp.models import Article
article = Article.objects.create(
title="Django Tutorial",
source_url="https://example.com/django-tutorial"
)
print(article.source_url)
Результат выполнения кода:
"https://example.com/django-tutorial"
Пример
Найдем все статьи, у которых поле source_url содержит ссылку на определенный домен:
from myapp.models import Article
res = Article.objects.filter(source_url__icontains='example.com')
for article in res:
print(article.title, article.source_url)
Результат выполнения кода:
"Django Tutorial https://example.com/django-tutorial"
Смотрите также
-
поле
CharField,
которое используется для хранения коротких текстовых данных -
поле
EmailField,
которое предназначено для хранения email-адресов -
поле
ImageField,
которое используется для загрузки изображений -
поле
GenericIPAddressField,
которое хранит IP-адреса