Небагато подробиць про Class Based Views, ч
Вітаю вас знов, дорогі читачі! Публікую чергову статтю з циклу трохи про Class Based Views (далі CBV) у Django. На цей раз я, як і планував, хотів би розглянути ListView (відповідає за відображення списку об'єктів) та DetailView (відповідає за відображення інформації про окремий об'єкт).
Також, як і раніше, я буду радий зворотного зв'язку з читачами — якщо ви виявите помилку чи неточність у статті, то прошу повідомити, чи зробимо статтю краще разом.
Посилання для швидкого пошуку методів
Посилання для швидкого пошуку атрибутів
Відображення списку об'єктів
Безперечно, ця операція потрібна в абсолютній більшості проектів і вона, на щастя, передбачена і розробниками Django у фреймворку. Методи та атрибути, описані в попередній частині, я думаю не потребують додаткового опису, тому враховуватиму лише нові, що зустрілися.
Розбавимо опис невеликим прикладом використання:
А ось, приблизно, так це може виглядати у шаблоні:
Думаю на цьому етапі можна закінчити розгляд функціональності DetailView, якщо я все ж таки пропустив щось важливе, то прошу повідомити і я доповню статтю.
Перегляд інформації про окремий об'єкт
Який би спосіб ідентифікації об'єкта ми не прийняли, наш об'єкт буде доступний за допомогою методуget_object. Цей метод по черзі намагається знайти в маршруті змінні pk і slug, в даному випадку змінна з ім'ям pk матиме великий пріоритет. За допомогою методуget_slug_fieldми можемо перевизначити ім'я поля slug нашої моделі. За промовчанням цей метод повертає значення атрибутуslug_field. Наш об'єкт зберігається в атрибутіobject.
На даному етапі я думаю миможемо закінчити розгляд класів ListView та DetailView. У наступній статті я намагатимусь написати про FormView та роботу з формами. Дякую, що приділили час на прочитання. Як завжди я відкритий для критики та повідомлень про недоліки. Бажаю всім вдалих вихідних днів!)
Хардкорна конфа за С++. Ми запрошуємо лише профі.