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

FloatField

Поле FloatField в формах Django предназначено для ввода и валидации чисел с плавающей точкой. Оно преобразует входящие данные в объект типа float в Python. Это поле полезно, когда необходимо принимать дробные числа, например, цену товара, рейтинг или координаты. В качестве виджета по умолчанию используется NumberInput, который в HTML отображается как поле ввода числа.

При создании формы поле FloatField принимает различные параметры для настройки валидации: max_value и min_value для ограничения диапазона, required для указания обязательности поля, initial для начального значения, а также label и help_text для отображения подписей и подсказок.

Синтаксис

from django import forms class MyForm(forms.Form): my_field = forms.FloatField( label="Метка поля", help_text="Подсказка", required=True, min_value=0.0, max_value=100.0, initial=0.0 )

Пример

Создадим простую форму для ввода рейтинга товара:

from django import forms class ProductRatingForm(forms.Form): rating = forms.FloatField( label="Рейтинг", help_text="Введите число от 0.0 до 5.0", min_value=0.0, max_value=5.0, initial=2.5 )

В шаблоне форма будет отображаться как поле ввода числа. После отправки формы можно получить очищенные данные:

from django.shortcuts import render from .forms import ProductRatingForm def rate_product(request): if request.method == "POST": form = ProductRatingForm(request.POST) if form.is_valid(): rating = form.cleaned_data["rating"] print(rating) else: form = ProductRatingForm() return render(request, "rate.html", {"form": form})

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

4.75

Пример

Поле FloatField также поддерживает необязательный параметр step_size, который задает шаг изменения значения в HTML-виджете:

from django import forms class ProductForm(forms.Form): price = forms.FloatField( label="Цена товара", help_text="Укажите цену товара в долларах", min_value=0.01, max_value=1000.00, initial=9.99, step_size=0.01 ) discount = forms.FloatField( label="Скидка", help_text="Укажите размер скидки в процентах", min_value=0.0, max_value=100.0, initial=0.0 )

При отправке формы данные проходят валидацию, и если они не соответствуют заданным ограничениям, в форму добавляются ошибки:

from django.shortcuts import render from .forms import ProductForm def product_view(request): if request.method == "POST": form = ProductForm(request.POST) if form.is_valid(): price = form.cleaned_data["price"] discount = form.cleaned_data["discount"] final_price = price - price * (discount / 100) print(final_price) else: form = ProductForm() return render(request, "product.html", {"form": form})

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

79.92

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

  • поле IntegerField,
    которое используется для целых чисел
  • поле DecimalField,
    которое используется для точных чисел
  • класс Form,
    базовый класс для создания форм
  • класс ModelForm,
    который создает формы на основе моделей
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить