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

IntegerField

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

Синтаксис

from django import forms class MyForm(forms.Form): field_name = forms.IntegerField( min_value=0, max_value=100, required=True, label="Number", initial=0, )

Пример

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

from django import forms class AgeForm(forms.Form): age = forms.IntegerField( min_value=0, max_value=150, label="Your age", help_text="Enter your age (0-150)", )

Результат создания экземпляра формы:

form = AgeForm() print(form.as_p())

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

"<p><label for="id_age">Your age:</label> <input type="number" name="age" min="0" max="150" required id="id_age"></p>"

Пример

Рассмотрим обработку данных из формы с валидацией поля:

from django import forms class ProductForm(forms.Form): price = forms.IntegerField( min_value=1, max_value=1000000, label="Price in cents", required=True, ) quantity = forms.IntegerField( min_value=1, max_value=1000, label="Quantity", initial=1, ) def clean_price(self): price = self.cleaned_data.get('price') if price < 0: raise forms.ValidationError("Price cannot be negative") return price

Пример обработки валидных и невалидных данных:

# Valid data form = ProductForm({'price': '500', 'quantity': '10'}) if form.is_valid(): print("Valid form data:") print(f"Price: {form.cleaned_data['price']}") print(f"Quantity: {form.cleaned_data['quantity']}") # Invalid data (price too high) form = ProductForm({'price': '9999999', 'quantity': '5'}) print(f"Is form valid? {form.is_valid()}") print(f"Errors: {form.errors}")

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

"Valid form data:" "Price: 500" "Quantity: 10" "Is form valid? False" "Errors: {'price': ['Ensure this value is less than or equal to 1000000.']}"

Пример

Использование IntegerField с моделью через ModelForm:

from django.db import models from django import forms class Book(models.Model): title = models.CharField(max_length=200) pages = models.IntegerField() published_year = models.IntegerField() def __str__(self): return self.title class BookForm(forms.ModelForm): class Meta: model = Book fields = ['title', 'pages', 'published_year'] widgets = { 'pages': forms.NumberInput(attrs={'min': 1, 'max': 5000}), 'published_year': forms.NumberInput(attrs={'min': 1900, 'max': 2026}), }

Пример создания и сохранения объекта модели через форму:

# Create form with valid data form_data = { 'title': 'Django Handbook', 'pages': '500', 'published_year': '2024', } form = BookForm(form_data) if form.is_valid(): book = form.save() print(f"Book created: {book.title}") print(f"Pages: {book.pages}") print(f"Year: {book.published_year}") # Try invalid data (negative pages) invalid_form = BookForm({'title': 'Invalid Book', 'pages': '-10', 'published_year': '2025'}) if not invalid_form.is_valid(): print(f"Invalid form errors: {invalid_form.errors}")

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

"Book created: Django Handbook" "Pages: 500" "Year: 2024" "Invalid form errors: {'pages': ['Ensure this value is greater than or equal to 1.']}"

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

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