verbose name django что это

Документация Django 1.4

Параметры Meta ¶

abstract ¶

app_label ¶

Если модель находится не в models.py (например, модели находятся в модулях пакета myapp.models ), модель должна определять к какому приложению принадлежит модель:

db_table ¶

Название таблицы в базе данных для этой модели:

Название таблицы¶

Если имя колонки это зарезервированное SQL слово, или содержит символы запрещенные в названиях переменной в Python – в частности, дефис – все нормально. Django автоматически экранирует название колонок и таблиц.

Use lowercase table names for MySQL

db_tablespace ¶

get_latest_by ¶

managed ¶

Правильное создание таблиц при тестировании в тестовой базе данных для модели с managed=False ложится на ваши плечи.

Если вы хотите переопределить поведение модели на уровне Python, вы можете использовать managed=False и создать копию существующей модели. Однако, есть лучшее решение для такой ситуации: Proxy-модели.

order_with_respect_to ¶

Для определения порядка объектов Answer передайте список первичных ключей в метод set_answer_order :

ordering ¶

Сортировка по-умолчанию используемая при получении объектов:

Это кортеж или список строк. Каждая строка это название поля с необязательным префиксом “-”, который указывает на нисходящую сортировку. Поля без “-” будут отсортированы по возрастанию. Используйте ”?” для случайной сортировке.

Например, для сортировки по возрастанию по полю pub_date :

Нисходящая сортировка по полю pub_date :

permissions ¶

Дополнительные разрешения(permissions) будут добавлены в таблицу разрешений при создании модели. Разрешения на добавление, удаление и изменение автоматически создаются для каждой модели. Этот пример добавляет разрешение can_deliver_pizzas :

proxy ¶

unique_together ¶

Множество полей, комбинация значений которых должна быть уникальна:

Используется в интерфейсе администратора для проверки данных и на уровне базы данных (то есть соответствующее определение UNIQUE будет добавлено в CREATE TABLE запрос).

Для удобства unique_together может быть одноуровневым списком, если определяется один набор уникальных полей:

verbose_name ¶

Читабельное название модели, в единственном числе:

verbose_name_plural ¶

Название модели в множественном числе:

Источник

Django учебник Часть 3: Использование моделей

В этой статье показано, как определить модели для LocalLibrary сайта. Она объясняет, что такое модель, как она объявляется, и некоторые из основных типов полей. В ней также кратко показаны некоторые из основных способов доступа к данным модели.

Предпосылки Django Tutorial Part 2: Creating a skeleton website.
Задача: Научиться проектировать и создавать свои собственные модели, выбирая подходящие поля.

Обзор

В этом учебнике показано, как определить и получить доступ к моделям на примере LocalLibrary website.

Проектирование моделей LocalLibrary

Перед тем, как вы начнёте программировать модели, стоит потратить несколько минут, чтобы подумать о том, какие данные нам нужно хранить, и о взаимоотношениях между разными объектами.

Мы знаем, что нам нужно хранить информацию о книгах (название, резюме, автор, язык, на котором написана книга, категория, ISBN) и что у нас может быть несколько доступных экземпляров (с уникальным глобальным идентификатором, статусом доступности и т. Д.). Нам может потребоваться хранить больше информации об авторе, чем просто их имя, и могут быть несколько авторов с одинаковыми или похожими именами. Мы хотим иметь возможность сортировать информацию на основе названия книги, автора, письменного языка и категории.

При проектировании ваших моделей имеет смысл иметь отдельные модели для каждого «объекта» (группа связанной информации). В этом случае очевидными объектами являются книги, экземпляры книг и авторы.

Как только мы определились с нашими моделями и полями, нам нужно подумать об отношениях. Django позволяет вам определять отношения, как один к одному ( OneToOneField ), один ко многим ( ForeignKey ) и многие ко многим ( ManyToManyField ).

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

Примечание. В следующем разделе приведён базовый пример, поясняющий, как модели определяются и используются. Когда вы его прочитаете, подумайте, как мы построим каждую из моделей на диаграмме выше.

Модель для начинающих

В этом разделе представлен краткий обзор того, как определяется модель, и некоторые из наиболее важных полей и аргументы поля.

Определение модели

В следующих разделах мы подробно рассмотрим каждый элемент внутри модели:

Имя поля используется для обращения к нему в запросах и шаблонах. В полях также есть метка, которая задаётся как аргумент (verbose_name), либо выводится путём заглавной буквы первой буквы имени переменной поля и замены любых символов подчёркивания пробелом (например, my_field_name будет иметь метку по умолчанию My field name).

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

Общие аргументы поля

Следующие общие аргументы могут использоваться при объявлении многих / разных типов полей:

Общие типы полей

Следующие общие аргументы могут использоваться при объявлении многих / разных типов полей:

Существует много других типов полей, включая поля для разных типов чисел (большие целые числа, малые целые числа, дробные), логические значения, URL-адреса, slugs, уникальные идентификаторы и другие «связанные с временем» сведения (продолжительность, время и т. д.). Вы можете просмотреть full list here.

Читайте также:  лоперамид или экофурил что лучше

Метаданные

Вы можете объявить метаданные на уровне модели для своей модели, объявив класс Meta, как показано на рисунке.

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

Например, если мы решили сортировать книги по умолчанию:

Книги будут отсортированы по алфавиту по названию, от A-Z, а затем по дате публикации внутри каждого названия, от самого нового до самого старого.

Другим распространённым атрибутом является verbose_name, подробное имя для класса в единственной и множественной форме:

Другие полезные атрибуты позволяют создавать и применять новые «разрешения доступа» для модели (разрешения по умолчанию применяются автоматически), разрешить упорядочение на основе другого поля или объявить, что класс является «абстрактным» (базовый класс, для которого вы не можете создавать записи, и вместо этого будет создан для создания других моделей). Многие другие параметры метаданных управляют тем, какая база данных должна использоваться для модели и как хранятся данные (это действительно полезно, если вам нужно сопоставить модель с существующей базой данных). Полный список опций метаданных доступен здесь: Model metadata options (Django документация).

Методы

Модель также может иметь методы. Минимально в каждой модели вы должны определить стандартный метод класса для Python __str __ (), чтобы вернуть удобочитаемую строку для каждого объекта. Эта строка используется для представления отдельных записей на сайте администрирования (и в любом другом месте, где вам нужно обратиться к экземпляру модели). Часто это возвращает поле названия или имени из модели.

Другим распространённым методом включения в модели Django является get_absolute_url (), который возвращает URL-адрес для отображения отдельных записей модели на веб-сайте (если вы определяете этот метод, тогда Django автоматически добавит кнопку «Просмотр на сайте» на экранах редактирования записей модели на сайте администратора). Типичный шаблон для get_absolute_url () показан ниже.

Конечно, для выполнения этой работы вам всё равно придётся писать сопоставление URL-адрес, просмотр и шаблон!

Вы также можете определить любые другие методы, которые вам нравятся, и вызывать их из вашего кода или шаблонов (при условии, что они не принимают никаких параметров).

Управление моделью

После того, как вы определили свои классы моделей, вы можете использовать их для создания, обновления или удаления записей и для запуска запросов для получения всех записей или отдельных подмножеств записей. Мы покажем вам, как это сделать в учебнике, когда мы определяем наши представления, с кратким обзором.

Создание и изменение записей

Чтобы создать запись, вы можете определить экземпляр модели, а затем вызвать метод save ().

Примечание. Если вы не указали какое-либо поле в качестве primary_key, новая запись будет выдаваться автоматически, с идентификатором имени поля. Вы можете запросить это поле после сохранения указанной выше записи, и оно будет иметь значение 1.

Вы можете получить доступ к полям в этой новой записи с использованием синтаксиса точек и изменить значения. Вы должны вызвать save (), чтобы сохранить изменённые значения в базе данных.

Поиск записей

Вы можете искать записи, соответствующие определённым критериям, используя атрибут объектов модели (предоставляемый базовым классом).

Примечание. Объяснение того, как искать записи, используя «абстрактную» модель и имена полей, может быть немного запутанным. В приведённом ниже обсуждении мы будем ссылаться на модель книги с полями названия и жанра, где жанр также является моделью с единственным именем в поле.

Метод filter() Django позволяет отфильтровать возвращаемый QuerySet для соответствия указанному текстовому или числовому полю по конкретным критериям. Например, чтобы отфильтровать книги, содержащие слово «wild» («дикие») в заголовке, а затем подсчитать их, мы могли бы сделать следующее.

В некоторых случаях вам нужно будет фильтровать поле, которое определяет отношение «один ко многим» к другой модели (например, ForeignKey ). В этом случае вы можете «индексировать» поля в связанной модели с дополнительными двойными подчёркиваниями. Так, например, чтобы фильтровать книги с определённым жанровым рисунком, вам нужно будет указывать имя в поле жанра, как показано ниже:

Примечание: Вы можете использовать символы подчёркивания (__) для навигации по многим уровням отношений (ForeignKey / ManyToManyField) по своему усмотрению. Например, книга, имеющая разные типы, определяемая с использованием дополнительной связи «обложка», может иметь имя параметра: type__cover__name__exact = ‘hard’.

Существует гораздо больше возможностей для запросов, включая обратные поиски от связанных моделей, цепочки фильтров, возврат меньшего набора значений и т. д. Для получения дополнительной информации см. Making queries (Django Docs, [EN]).

Определение моделей LocalLibrary

Модель жанра

Модель книги

Скопируйте модель книги ниже и снова вставьте её в нижнюю часть файла. Модель книги представляет всю информацию о доступной книге в общем смысле, но не конкретный физический «экземпляр» или «копию» для временного использования. Модель использует CharField для представления названия книги и isbn (обратите внимание, как isbn указывает свой ярлык как «ISBN», используя первый неименованный параметр, поскольку в противном случае ярлык по умолчанию был бы «Isbn»). Модель использует TextField для summary, потому что этот текст, возможно, должен быть очень длинным.

Читайте также:  какие упражнения на экзамене в гаи на категорию а

Жанр представляет из себя ManyToManyField, так что книга может иметь несколько жанров, а жанр может иметь много книг. Автор объявляется через ForeignKey, поэтому в каждой книге будет только один автор, но у автора может быть много книг (на практике книга может иметь несколько авторов, но не в такой реализации!)

Модель также определяет __str __ (), используя поле заголовка книги для представления книги. Окончательный метод get_absolute_url () возвращает URL-адрес, который можно использовать для доступа к подробной записи для этой модели (для этого нам нужно будет определить сопоставление URL-адресов, в котором содержится подробная информация о книге, и определить связанное представление и шаблон ).

Модель BookInstance

Затем скопируйте модель BookInstance (показано ниже) под другие модели. BookInstance представляет собой определённую копию книги, которую кто-то может брать взаймы, и включает информацию о том, доступна ли копия или в какой день она ожидается, «отпечаток» или сведения о версии, а также уникальный идентификатор книги в библиотеке. Теперь некоторые из полей и методов будут знакомы. Модель использует

Мы дополнительно объявляем несколько новых типов полей:

Модель __str __ () представляет объект BookInstance, используя комбинацию его уникального идентификатора и связанного с ним заголовка книги.

Примечание. Немного Python:

Обратите также внимание на то, что, хотя этот подход совершенно применим, но он более не является предпочтительным. Начиная с Python 3, вы должны использовать метод format, например. ‘ <0>(<1>)’.format (self.id, self.book.title). Вы можете узнать больше об этом здесь.

Модель автора

Скопируйте модель автора (показано ниже) под существующим кодом в models.py.

Теперь все поля/методы должны быть знакомы. Модель определяет автора как имя, фамилию, дату рождения и (необязательную) дату смерти. Он указывает, что по умолчанию __str __ () возвращает имя в фамилии, порядковый номер первого имени. Метод get_absolute_url () отменяет сопоставление URL-адреса автора с целью получения URL-адреса для отображения отдельного автора.

Повторно выполнить миграцию базы данных

Теперь все ваши модели созданы. Теперь переустановите миграцию базы данных, чтобы добавить их в свою базу данных.

Представьте себе, что местный благотворитель жертвует ряд новых книг, написанных на другом языке (скажем, фарси). Задача состоит в том, чтобы определить, как они будут лучше всего представлены на нашем веб-сайте библиотеки, а затем добавить их в модели.

Некоторые вещи, которые следует учитывать:

После того, как вы решили, добавьте поле. Вы можете увидеть наше решение на Github here.

Резюме

В этой статье мы узнали, как определять модели, а затем использовать эту информацию в разработке и внедрении соответствующих моделей для сайта LocalLibrary.

На этом этапе мы отвлечёмся от создания сайта и проверим Django Administration site. Этот сайт позволит нам добавить некоторые данные в библиотеку, которые мы можем отобразить с помощью наших (ещё не созданных) представлений и шаблонов.

Источник

Meta Шаблон опции ¶

Meta Доступные варианты ¶

abstract ¶

app_label ¶

base_manager_name ¶

db_table ¶

Имя таблицы базы данных для использования в модели:

Имена таблиц ¶

Чтобы сэкономить ваше время, Django автоматически извлекает имя таблицы базы данных из имени класса модели и приложения, в котором он находится. Имя таблицы базы данных модели создается путем добавления «метки» приложения модели (имени, используемого при заказе ) к имени класса модели в сочетании с подчеркиванием. manage.py startapp

Имена таблиц в нижнем регистре для MariaDB и MySQL

Цитированные имена таблиц для Oracle

Чтобы соблюсти ограничение в 30 символов, которое Oracle помещает в имена таблиц, и следовать обычным соглашениям баз данных Oracle, Django может сокращать имена таблиц и переводить их в верхний регистр. Чтобы предотвратить эти преобразования, записывайте значения в кавычках в db_table :

db_tablespace ¶

Имя табличного пространства базы данных, которое будет использоваться для этой модели. По умолчанию используется параметр DEFAULT_TABLESPACE проекта, если он определен. Если движок не поддерживает табличные пространства, этот параметр игнорируется.

default_manager_name ¶

Имя обработчика, используемого для атрибута _default_manager модели.

default_related_name ¶

get_latest_by ¶

Смотрите документацию latest() для более подробной информации.

managed ¶

Автоматическое добавление поля первичного ключа в модель, если оно не объявлено. Чтобы исключить любую возможную путаницу для читателей вашего кода, рекомендуется указать все столбцы в таблице базы данных, которые вы моделируете, используя неуправляемые модели.

Если вы хотите изменить это поведение по умолчанию, явно создайте модель промежуточной таблицы (с managed соответствующей опцией ) и используйте атрибут, ManyToManyField.through чтобы отношение использовало созданную таким образом модель.

При тестировании с участием моделей с помощью managed=False вы должны убедиться, что правильные таблицы созданы как часть настройки тестирования.

order_with_respect_to ¶

Порядок связанных объектов Answer объекта Question можно определить, передав список первичных ключей объекта Answer :

Внутри order_with_respect_to добавьте дополнительное именованное поле (столбец базы данных) _order и установите ordering для этого поля параметр модели. Следовательно, order_with_respect_to и ordering не могут использоваться вместе, и порядок сортировки, добавленный с помощью, order_with_respect_to применяется всякий раз, когда вы получаете список объектов для этой модели.

ordering ¶

Стандартная сортировка объектов при получении списков объектов:

Это кортеж, список строк или выражения запроса. Каждая строка соответствует имени поля, необязательно с префиксом «-», указывающим на сортировку по убыванию. Поля без префикса «-» сортируются в порядке возрастания. Укажите строку «? Сортировка случайным образом.

Читайте также:  аришнев инстаграмм что случилось

Например, чтобы отсортировать поле pub_date в порядке возрастания, укажите:

Для сортировки по pub_date убыванию укажите:

Для сортировки по pub_date убыванию, а затем по author возрастанию укажите:

Если запрос не имеет порядка сортировки, результаты возвращаются из базы данных в неопределенном порядке. Определенный порядок может быть гарантирован только в том случае, если порядок основан на одном или нескольких полях, которые однозначно идентифицируют каждый объект результата. Например, если поле nom не уникально, сортировка по этому полю не гарантирует, что объекты с одинаковым именем всегда будут отображаться в одном и том же порядке.

permissions ¶

Дополнительные разрешения для интеграции в таблицу разрешений при создании этого объекта. Разрешения на добавление, изменение, удаление и просмотр автоматически создаются для всех моделей. В этом примере добавляется дополнительное разрешение can_deliver_pizzas :

default_permissions ¶

proxy ¶

required_db_features ¶

required_db_vendor ¶

select_on_save ¶

См. django.db.models.Model.save() Подробности о старом и новом алгоритме записи.

indexes ¶

Список индексов, которые вы хотите определить для модели:

Источник

Мета-класс в моделях Django

класс Мета в Django

Класс Meta может использоваться для определения различных вещей о модели, таких как разрешения, имя базы данных, единственное и множественное число, абстракция, порядок и т. Д. Добавление классов Meta в модели Django совершенно необязательно.

Этот класс также имеет множество параметров, которые вы можете настроить. Ниже приведены некоторые из наиболее часто используемых мета-параметров; вы можете изучить все мета-варианты здесь

Модели, заданные как абстрактные, могут быть только наследованы. Эту опцию можно использовать, если есть несколько моделей с общими полями.

Эта опция используется для установки имени, которое должно использоваться для идентификации таблицы в базе данных. Например: если я сделаю что-то следующее, имя моей модели будет job в базе данных.

Эта опция принимает список строковых значений, которые являются полями модели. Он используется для определения порядка объектов модели. Когда объекты этой модели будут извлечены, они будут представлены в этом порядке.

Эта опция используется для определения удобочитаемого единственного имени модели и заменяет стандартное соглашение об именах Django. Это имя также отобразится в панели администратора ( /admin/ ).

Этот параметр используется для определения удобочитаемого имени во множественном числе для модели, которое снова перезапишет стандартное соглашение об именах Django. Это имя также отобразится в панели администратора ( /admin/ ).

Источник

Документация Django 1.9

Параметры Meta ¶

abstract ¶

app_label ¶

db_table ¶

Название таблицы в базе данных для этой модели:

Название таблицы¶

Экономя ваше время, Django автоматически создаст название таблицы из названия модели и приложения. Название таблицы состоит из названия приложения(“app label”) – название используемое для команды manage.py startapp – и названия модели, объединенные нижним подчеркиванием.

Если имя колонки это зарезервированное SQL слово, или содержит символы запрещенные в названиях переменной в Python – в частности, дефис – все нормально. Django автоматически экранирует название колонок и таблиц.

Используйте нижний регистр для названий таблиц в MySQL

Названия таблиц в кавычках для Oracle

Т.к в Oracle есть ограничение в 30 символов на название таблиц, и для соблюдения соглашений работы с Oracle, Django может ограничить название таблицы и преобразовать его в верхний регистр. Чтобы избежать этого, укажите название в кавычках в настройке db_table :

db_tablespace ¶

default_related_name ¶

get_latest_by ¶

managed ¶

Если модель с managed=False содержит ManyToManyField на другую неуправляемую модель, промежуточная таблица для хранения связи многое-ко-многим не будет создана. Однако, промежуточная таблица между управляемой и не управляемой моделью будет создана.

Правильное создание таблиц при тестировании в тестовой базе данных для модели с managed=False ложится на ваши плечи.

order_with_respect_to ¶

Для определения порядка объектов Answer передайте список первичных ключей в метод set_answer_order :

order_with_respect_to неявно использует ordering

ordering ¶

Сортировка по умолчанию используемая при получении объектов:

Это кортеж или список строк. Каждая строка это название поля с необязательным префиксом “-”, который указывает на нисходящую сортировку. Поля без “-” будут отсортированы по возрастанию. Используйте ”?” для случайной сортировке.

Например, для сортировки по возрастанию по полю pub_date :

Нисходящая сортировка по полю pub_date :

Сортировка не бесплатная операция. Каждое поле влияет на скорость выполнения запроса. Каждый внешний ключ добавит сортировку по умолчанию связанной модели.

permissions ¶

Дополнительные разрешения(permissions) будут добавлены в таблицу разрешений при создании модели. Разрешения на добавление, удаление и изменение автоматически создаются для каждой модели. Этот пример добавляет разрешение can_deliver_pizzas :

default_permissions ¶

proxy ¶

required_db_features ¶

required_db_vendor ¶

select_on_save ¶

unique_together ¶

Множество полей, комбинация значений которых должна быть уникальна:

Кортеж кортежей полей, которые должны быть вместе уникальны. Используется в интерфейсе администратора для проверки данных и на уровне базы данных (то есть соответствующее определение UNIQUE будет добавлено в CREATE TABLE запрос).

Для удобства unique_together может быть одноуровневым списком, если определяется один набор уникальных полей:

index_together ¶

Множество полей, для которых создается один индекс:

Для удобства index_together может быть одноуровневым списком, если определяется один набор полей:

verbose_name ¶

Читабельное название модели, в единственном числе:

verbose_name_plural ¶

Название модели в множественном числе:

Источник

Информ портал о технике и не только