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

Поле FloatField

Поле FloatField применяется в моделях Django для хранения чисел с плавающей точкой. Оно преобразуется в тип данных double в базе данных и позволяет хранить дробные числа с заданной точностью. Поле принимает аргументы max_value и min_value для ограничения диапазона допустимых значений, а также blank и null для контроля обязательности поля.

Синтаксис

from django.db import models class ModelName(models.Model): field_name = models.FloatField( max_value=100.0, min_value=0.0, null=True, blank=True, default=0.0 )

Пример

Давайте создадим модель продукта с полем для хранения его цены:

from django.db import models class Product(models.Model): name = models.CharField(max_length=100) price = models.FloatField() discount = models.FloatField(default=0.0) def __str__(self): return self.name

Пример

Создадим несколько продуктов с разными ценами и применим фильтрацию:

from myapp.models import Product # Create products with float prices product1 = Product.objects.create(name="Laptop", price=1200.50) product2 = Product.objects.create(name="Mouse", price=25.99) product3 = Product.objects.create(name="Keyboard", price=89.90) # Filter products with price greater than 100 expensive_products = Product.objects.filter(price__gt=100.0) for product in expensive_products: print(product.name, product.price)

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

"Laptop 1200.5" "Keyboard 89.9"

Пример

Давайте используем поле FloatField с ограничениями на минимальное и максимальное значение:

from django.db import models class StudentScore(models.Model): student_name = models.CharField(max_length=50) score = models.FloatField( min_value=0.0, max_value=100.0, help_text="Score must be between 0 and 100" ) def __str__(self): return f"{self.student_name}: {self.score}"

Пример

Продемонстрируем операции с числами с плавающей точкой в запросах:

from myapp.models import Product from django.db.models import F, Avg, Sum # Increase all prices by 10% Product.objects.update(price=F('price') * 1.1) # Get average price of all products avg_price = Product.objects.aggregate(Avg('price')) # Get total sum of all products total_sum = Product.objects.aggregate(Sum('price')) print(avg_price, total_sum)

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

"{'price__avg': 48.33, 'price__sum': 145.0}"

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

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