Часть 5: Учебное пособие о том, как легко создавать базовые функции администратора Django и управлять ими в нашей базе данных Django.

Самые продвинутые планы развития науки о данных, которые вы когда-либо видели! Поставляется с тысячами бесплатных учебных ресурсов и интеграцией ChatGPT! https://aigents.co/learn/roadmaps/intro

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

Но нам не хватает моделей Article и Series; нам нужно их зарегистрировать. Нам нужно зарегистрировать ArticleSeries и Article на нашем сайте администратора, и мы делаем следующее:

После регистрации этих моделей вернитесь к панели администратора, и вы должны увидеть доступные модели «Группы», «Статьи», «Серии» и «Пользователи»:

Нажмите на пользователей, затем на имя пользователя, которое вы только что создали. Как видите, здесь довольно много полей. Это модель пользователя Django в сочетании с нашими настраиваемыми полями. Тем не менее, все эти поля, которые мы можем редактировать, довольно круты. Мы могли бы даже добавить сюда новых пользователей в качестве администраторов. Однако вручную мы вряд ли будем добавлять пользователей. Мы добавим статьи, серии или другие вещи в будущем. Если у вас нет таких представлений, как у меня, похоже, вы что-то пропустили в моих предыдущих уроках. Вернитесь, проверьте, что вы пропустили, а затем продолжите этот урок.

Я буду использовать примеры данных во всей этой серии руководств по веб-сайтам Django без каких-либо реальных целей. Первая идея, которая пришла мне в голову, заключалась в том, что я зайду в Википедию и возьму два типа кошек и два типа собак, которые я буду использовать для создания двух серий для них, и у нас будет подробная информация в их сериях.

Создать серию:

Теперь мы можем создать нашу первую серию, щелкнуть по ней, и вы должны увидеть похожее представление:

Когда мы нажимаем кнопку «Сохранить», теперь у нас есть новая серия в нашей базе данных под названием «Собаки». Итак, я создаю серию под названием «Собаки». Я даю ему короткий подзаголовок «Все о собаках», и такой простой слоган, как просто «собаки». К этой серии мы отнесем наши подробные статьи, где будем писать о хаски, акитах, доберманах и других породах собак. Та же серия, которую я создаю для кошек.

Создать статьи:

Мы также можем добавить новую статью с предыдущей страницы; например, я создаю один для «Бенгальской кошки»:

Обратите внимание, что все поля разные. Заголовок представляет собой небольшую однострочную запись. Затем идет большая коробка с содержимым. Поля ввода даты самые короткие, однострочные, и даже имеют параметры календаря и часов. Чтобы сделать вещи еще более невероятными, даты позволяют нам просто быстро нажимать «сегодня» и «сейчас». Теперь мы даже можем выбрать нашу серию из выпадающего списка. Это потрясающе! Django делает все это, используя типы полей, которые мы указываем в нашей модели. Вы можете перечислять, редактировать, добавлять и удалять все свои модели на этой странице администратора.

Если вам когда-либо приходилось писать такую ​​панель управления администратором, вы, вероятно, сейчас сильно запутались. Вы получаете эту удивительную вещь от Django прямо у ворот.

Но подождите, это еще не все! Мы можем легко организовать то, как эта модель представляется нам. Мы не всегда выбираем порядок столбцов в таблице. Мы также можем не заботиться обо всех столбцах. Чтобы изменить способ представления этой информации, вернемся к редактированию файла admin.py:

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

Другой вариант — изменить способ группировки вещей в организационных целях. В нашем случае все еще не запутанно, потому что у нас еще не так много столбцов, но все может измениться довольно быстро. Итак, нам нужно организовать вещи, например, создав «наборы полей», мы делаем это для нашей модели «Статья»:

После внесения этих изменений мы должны увидеть следующие результаты в нашей панели администратора:

Это легко и круто, не так ли?

Интеграция с TinyMCE:

Помните, что я говорил о Django как о наборе приложений и о том, что делает абстракцию, которую Django заставляет использовать высокомодульные приложения? Давайте посмотрим, насколько легко это может быть.

Одна вещь, которую отчаянно мог бы использовать мой веб-сайт, — это простой в использовании текстовый редактор, а не просто текстовое поле. Конечно, я могу написать здесь HTML, но это было бы довольно скучно и отняло бы много времени, особенно если бы я сделал какую-то орфографическую ошибку, а потом не увидел ее, пока не опубликовал! Вместо этого я буду использовать редактор WYSIWYG (что видишь, то и получаешь). К счастью, многие из них существуют в экосистеме Django. То, что я буду использовать, называется TinyMCE. Чтобы получить его, нам нужно вставить его в Django, выполнив два следующих шага:

pip install django-tinymce

Теперь это установленное приложение, поэтому нам нужно добавить его в наш INSTALLED_APPS в файле django_project/django_website/settings.py:

Потом где-то в конце файла в settings.py тоже добавить:

Это именно те конфигурации, которые лучше всего подходят для меня. Это означает, что они могут быть не лучшими для ваших целей, поэтому вам определенно следует проверить страницу документации Django-TinyMCE, чтобы найти лучшие конфигурации для ваших целей.

Затем нам нужно добавить указатель на приложение, чтобы на него можно было ссылаться при вызове. Для этого давайте теперь отредактируем django_project/django_website/urls.py:

Наконец, нам нужно использовать TinyMCE везде, где мы хотим. Для этого нам нужно настроить модель на использование модели TinyMCE вместо TextField. Для этого вернитесь в наш файл django_project/main/models.py и измените следующие строки:

Не забудьте изменить django_project/main/admin.py и вставить примечания в наш класс ArticleAdmin на вкладке Content:

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

Заключение:

Этот материал с Джанго потрясающий! Но этот редактор настолько гибкий, что мы можем добавлять в него свои плагины для определенных функций. Таким образом, этот редактор TinyMCE позволяет нам писать HTML, вставлять фрагменты кода и набирать текст гораздо проще. Мы также можем просматривать необработанный HTML-код и вставлять пользовательский HTML-код, если чего-то, чего мы хотим, нет в редакторе.

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

Давайте теперь вернемся к нашему views.py, чтобы узнать, как наши представления могут взаимодействовать с нашими моделями и как работают шаблоны Django для отображения и работы с объектами python внутри шаблонов HTML. Мы сделаем это в нашем следующем уроке!

Эти обучающие файлы можно загрузить с GitHub.

Первоначально опубликовано на https://pylessons.com/django-admin

Дополнительные материалы на PlainEnglish.io. Подпишитесь на нашу бесплатную еженедельную рассылку новостей. Подпишитесь на нас в Twitter и LinkedIn. Посетите наш Community Discord и присоединитесь к нашему Коллективу талантов.