Django Общие методы полей имя и

clean(value, instance) - проверяет, что данное значение подходит для модели и экземпляра, которому оно присвоено. Внутренне, это отсылает к to_python() и validate(), а также а также обрабатывает список валидаторов, которые были определены при инстанцировании поля. Это возвращает исправленное значение, если все было правильно, и вызывает ошибку django.core.exceptions. ValidationError в противном случае.

- contribute_to_class(cls, name)-Конфигурирует поле для класса, к которому оно присоединено. Один из самых важных методов для полей, он вызывается, когда ModelBase обрабатывает атрибуты, которые были присвоены определению класса модели. Аргумент cls - это класс модели, к которому оно было приписано, а name - это имя, которое ему было дано, когда оно было туда приписано. Это дает полям возможность выполнить любую дополнительную настройку или конфигурацию, основываясь на этой информации. Обычно ее не нужно вызывать напрямую, но она может быть полезным способом применения поля к ранее обработанной модели.

- db_type(connection)- возвращает определение столбца, специфичное для базы данных, необходимое для хранения данных в этом поле. Обычно это используется только внутри приложения, но, как и некоторые другие перечисленные атрибуты, если приложению необходимо получить прямой доступ к базе данных с помощью какого-либо другого инструмента, это может быть полезным способом определить, как выглядит базовый столбец.

- formfield()- возвращает поле формы, основанное на типе данных поля и вербальном имени, подходящем для включения в любую стандартную форму. По желанию принимает один явный аргумент, form_class, который является классом поля формы, который должен быть инстанцирован, по умолчанию выбирается любое поле формы, наиболее подходящее, как определено самим полем модели. Она также принимает любое количество дополнительных ключевых аргументов, которые просто передаются через конструктор поля формы перед возвращением инстанцированного поля формы. Обычно эта функция вызывается Django автоматически при построении формы на основе модели, но может использоваться и вручную в других ситуациях. Более подробную информацию можно найти в главе 5. - get_attname()-Возвращает имя, которое должно использоваться для атрибута attname. Вызывается только один раз, пока поле настраивается для класса.

- get_attname_column()- возвращает кортеж из двух элементов, содержащий значения для атрибута attname, а также атрибута column.

- get_cache_name()- возвращает имя, подходящее для использования в качестве кэша для поля, если кэширование необходимо. Обычно это требуется только для полей, генерирующих сложные типы данных Python, производительность которых значительно снизится, если такой сложный объект будет генерироваться при каждом обращении, или в случаях, когда он не будет использоваться. Подробности использования этого метода в таких случаях см. в разделе "Прикладные техники" в конце этой главы.

- get_choices()- возвращает последовательность из двух кортежей, которые должны использоваться для отображения вариантов выбора пользователям, желающим ввести данные в это поле. В отличие от атрибута choices, этот параметр может также включать пустой вариант, который указывает на то, что выбор не был сделан. Это поведение контролируется двумя необязательными аргументами: include_blank, булево значение, указывающее, следует ли его включать

Вернуться на верх