Spec-Zone.ru › Django 1.8

Встроенный API на основе представлений классов

Справочник по API на основе представлений классов. Для вводного материала см. руководство по представлениям на основе классов.

  • Базовые представления
    • Представление
    • Представление шаблона
    • Представление перенаправления
  • Представления обобщенного отображения
    • Представление детали
    • Представление списка
  • Представления обобщенного редактирования
    • Представление формы
    • Представление создания
    • Представление обновления
    • Представление удаления
  • Представления на основе даты
    • Представление индекса архива
    • Представление архива года
    • Представление архива месяца
    • Представление архива недели
    • Представление архива дня
    • Представление архива текущего дня
    • Представление детали даты
  • Смеси представлений на основе классов
    • Простые смеси
      • Смесь контекста
      • Смесь ответа шаблона
    • Смеси для одного объекта
      • Смесь одного объекта
      • Смесь ответа шаблона одного объекта
    • Смеси для нескольких объектов
      • Смесь нескольких объектов
      • Смесь ответа шаблона нескольких объектов
    • Смеси для редактирования
      • Смесь формы
      • Смесь формы модели
      • Обработка представления формы
      • Смесь удаления
    • Смеси на основе даты
      • Смесь года
      • Смесь месяца
      • Смесь дня
      • Смесь недели
      • Смесь даты
      • Базовое представление списка дат
  • Уплощенный индекс представлений на основе классов
    • Простые обобщенные представления
      • Представление
      • Представление шаблона
      • Представление перенаправления
    • Представления деталей
      • Представление детали
    • Представления списков
      • Представление списка
    • Представления редактирования
      • Представление формы
      • Представление создания
      • Представление обновления
      • Представление удаления
    • Представления на основе даты
      • Представление индекса архива
      • Представление архива года
      • Представление архива месяца
      • Представление архива недели
      • Представление архива дня
      • Представление архива текущего дня
      • Представление детали даты

Спецификация

Каждое обращение, обработанное представлением на основе класса, имеет независимое состояние; поэтому безопасно хранить переменные состояния в экземпляре (т. е., self.foo = 3 является потокобезопасной операцией).

Представление на основе класса развертывается в шаблоне URL с помощью метода класса as_view():

urlpatterns = [
    url(r'^view/$', MyView.as_view(size=42)),
]

Потокобезопасность с аргументами представления

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

Аргументы, передаваемые в as_view(), будут присвоены экземпляру, используемому для обработки запроса. Используя предыдущий пример, это означает, что каждый запрос на MyView может использовать self.size. Аргументы должны соответствовать атрибутам, которые уже существуют в классе (возвращают True при проверке hasattr).

Базовые и обобщенные представления

Базовые представления на основе класса можно рассматривать как родительские представления, которые можно использовать сами по себе или наследовать от них. Они могут не предоставлять все возможности, необходимые для проектов, в которых есть Смеси, расширяющие возможности базовых представлений.

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

Большинство обобщенных представлений требуют ключ queryset, который представляет собой экземпляр QuerySet; см. Выполнение запросов для получения дополнительной информации об объектах QuerySet.

© Django Software Foundation and individual contributors
Licensed under the BSD License.
https://docs.djangoproject.com/en/1.8/ref/class-based-views/index/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API