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

Поле UUIDField

Поле UUIDField в Django формах предназначено для валидации и обработки данных, представляющих собой универсальные уникальные идентификаторы (UUID). Это поле автоматически преобразует входные данные в объект uuid.UUID и обратно, обеспечивая корректную работу с этим типом данных. Поле принимает строковые представления UUID как в формате с дефисами, так и без них, а также в виде UUID объектов.

Синтаксис

from django import forms class MyForm(forms.Form): uuid_field = forms.UUIDField(**options)

Пример

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

from django import forms import uuid class UserForm(forms.Form): user_id = forms.UUIDField(label="User ID", required=True)

Пример

Рассмотрим пример валидации поля с передачей строкового представления UUID:

from django import forms import uuid class ProductForm(forms.Form): product_uuid = forms.UUIDField(label="Product UUID") # Создание формы с валидными данными form = ProductForm({ 'product_uuid': '550e8400-e29b-41d4-a716-446655440000' }) if form.is_valid(): print("Data is valid") print(f"UUID object: {form.cleaned_data['product_uuid']}") else: print("Data is invalid") print(form.errors)

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

"Data is valid" "UUID object: 550e8400-e29b-41d4-a716-446655440000"

Пример

Поле UUIDField также может принимать UUID объекты напрямую:

from django import forms import uuid class CategoryForm(forms.Form): category_uuid = forms.UUIDField() # Создание формы с UUID объектом uuid_obj = uuid.uuid4() form = CategoryForm({ 'category_uuid': uuid_obj }) if form.is_valid(): print("UUID object accepted") print(f"Value: {form.cleaned_data['category_uuid']}") print(f"Type: {type(form.cleaned_data['category_uuid'])}")

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

"UUID object accepted" "Value: a1b2c3d4-e5f6-7890-abcd-ef1234567890" "Type: <class 'uuid.UUID'>"

Пример

При попытке передать невалидные данные поле выбрасывает ошибку валидации:

from django import forms class TestForm(forms.Form): code = forms.UUIDField() # Создание формы с невалидными данными form = TestForm({ 'code': 'not-a-uuid-string' }) if form.is_valid(): print("Valid") else: print("Invalid") print(f"Errors: {form.errors}")

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

"Invalid" "Errors: {'code': ['Enter a valid UUID.']}"

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

  • класс Form,
    который является базовым классом для создания форм
  • атрибут cleaned_data,
    который содержит валидированные данные формы
  • метод is_valid,
    который выполняет валидацию полей формы
  • поле CharField,
    которое используется для работы со строковыми данными
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить