Содержание
Django CMS for Administrators курс
Last updated
Код курса
djangocms
Длительность
14 часов Обычно 2 дней, включая паузы
Технические требования
- Experience with the Linux command line
- Familiarity with Python
Audience
- System administrators
Обзор
Django CMS является все более популярной системой управления контентом открытого источника. Он является дополнением к Python веб-фрему Django.
Этот инструктор-управляемый, живый обучение (онлайн или на сайте) направлено на sysadmins, которые хотят установить, внедрить и управлять корпоративным CMS (система управления контентом) на основе Python.
К концу обучения участники смогут:
Настройка и конфигурация веб-сайта производственного уровня Django CMS.
Определите пользовательские роли и разрешения.
Настройка базы данных и выполнение операций по обслуживанию.
Обеспечение, мониторинг, оптимизация и устранение проблем живой системы CMS.
Пейфор администрационные задачи, включая резервную копию, восстановление и миграцию сайта.
Запуск мультисайтных примерах Django CMS в предварительном порядке или в общественном облаке.
Интегрировать Django CMS с приложениями и системами третьих лиц.
Формат курса
Интерактивная лекция и дискуссия.
Много упражнений и практики.
Реализация в живой лабораторной среде.
Курс персонализации опций
Для получения персонализированного обучения на этот курс, пожалуйста, свяжитесь с нами для организации.
Machine Translated
Программа курса
Introduction
- Django CMS vs Drupal vs WordPress
Overview of Django Web Framework
Overview of Django CMS Features and Architecture
Evaluating Hosting Options (on-premise, public cloud, etc. )
Installing and Configuring Django CMS
Navigating the Admin UI
Working with Plugins
Working with the Database
Managing Users and Roles
Securing Django CMS
Deploying Django CMS to Production
Setting up Multiple Websites
Backing up and Restoring Django CMS
Migrating Django CMS
Integrating Django CMS with 3rd Party Applications
Monitoring a Django CMS Site
Maintaining and Repairing Django CMS
Optimizing Django CMS
Troubleshooting
Summary and Conclusion
Отзывы
UBS Business Solutions Poland Sp. z o.o.
Курсы:Web Development with Django
Machine Translated
Łukasz Matulewicz
Курсы:Programowanie w języku Python
Machine Translated
Magdalena Stupak
Курсы:Programowanie w języku Python
Machine Translated
Renata Cylejowska
Курсы:Programowanie w języku Python
Machine Translated
Natalia Machrowicz
Курсы:Python Programming
Machine Translated
Malwina Sawa
Курсы:Python Programming
Machine Translated
Курсы:Python Programming
Machine Translated
Matthew Lucas
Курсы:Python Programming
Machine Translated
Marc Ammann
Курсы:Python Programming
Machine Translated
蒙 李
Курсы:Machine Learning Fundamentals with Python
Machine Translated
Szymon Wolny
Курсы:Programowanie w języku Python
Machine Translated
Motorola Solutions Systems Polska Sp. z o.o
Курсы:Programowanie w języku Python
Machine Translated
Motorola Solutions Systems Polska Sp. z o.o
Курсы:Programowanie w języku Python
Machine Translated
Małgorzata Konior
Курсы:Programowanie w języku Python
Machine Translated
Agnieszka Bielak
Курсы:Programowanie w języku Python
Machine Translated
Motorola Solutions Systems Polska Sp. z o.o
Курсы:Programowanie w języku Python
Machine Translated
Motorola Solutions Systems Polska Sp. z o.o
Курсы:Programowanie w języku Python
Machine Translated
Maksym Kolodiy
Курсы:Programowanie w języku Python
Machine Translated
Motorola Solutions Systems Polska Sp. z o.o
Курсы:Programowanie w języku Python
Machine Translated
Motorola Solutions Systems Polska Sp. z o.o
Курсы:Programowanie w języku Python
Machine Translated
Motorola Solutions Systems Polska Sp. z o.o
Курсы:Programowanie w języku Python
Machine Translated
Łukasz Olczyk
Курсы:Python: Automate the boring stuff
Machine Translated
Sacha Nandlall
Курсы:Python for Advanced Machine Learning
Machine Translated
Rajiv Dhingra — TCS
Курсы: Python Programming
Machine Translated
Soumya Tyagi — TCS
Курсы:Python Programming
Machine Translated
MTU Aero Engines Polska Sp. z o. o.
Курсы:Programowanie w języku Python
Machine Translated
MTU Aero Engines Polska Sp. z o. o.
Курсы:Programowanie w języku Python
Machine Translated
MTU Aero Engines Polska Sp. z o. o.
Курсы:Programowanie w języku Python
Machine Translated
ASML
Курсы:Python for Matlab Users
Machine Translated
ASML
Курсы:Python for Matlab Users
Machine Translated
A1 Telekom Austria AG
Курсы:Deep Learning for Telecom (with Python)
Machine Translated
Курсы:Python Programming
Machine Translated
Родственные категории
Родственные курсы
Скидки
В настоящее время акции не проводятся
Информационная рассылка
Мы уважаем конфиденциальность Ваших персональных данных. Мы обязуемся не передавать Ваши данные третьим лицам. Вы всегда можете изменить свои настройки конфиденциальности или полностью отказаться от подписки.
Must be empty
Этот сайт в других странах / регионах
Europe
Europe
Belarus
Österreich (Austria)
Schweiz (Switzerland)
Deutschland (Germany)
Czech Republic
Denmark
Estonia
Finland
Greece
Magyarország (Hungary)
Ireland
Luxembourg
Latvia
España (Spain)
Italia (Italy)
Lithuania
Nederland (Netherlands)
Norway
Portugal
România (Romania)
Sverige (Sweden)
Turkey
Malta
Belgique (Belgium)
France
Polska (Poland)
United Kingdom
Україна (Ukraine)
Bulgaria
Moldova
Azerbaijan
Slovakia
Asia Pacific
Asia Pacific
中国 (China)
香港 (Hong Kong)
澳門 (Macao)
台灣 (Taiwan)
日本 (Japan)
Australia
Malaysia
New Zealand
Philippines
Singapore
Thailand
Vietnam
India
South Korea
Pakistan
Sri Lanka
Indonesia
Қазақстан (Kazakhstan)
North America
North America
Canada
Quebec
USA
Costa Rica
Guatemala
México (Mexico)
Panama
South America
South America
Brasil (Brazil)
Argentina
Chile
Ecuador
Colombia
Peru
Uruguay
Venezuela
Bolivia
Africa / Middle East
Africa / Middle East
United Arab Emirates
Qatar
Egypt
Saudi Arabia
South Africa
Israel
Morocco
Tunisia
Kuwait
Oman
Kenya
Nigeria
Botswana
Other sites
Other sites
Кадры
Материалы для курсов
Франшиза NobleProg
DaDesktop — Cloud Desktop
Руководство Django часть 4: административная панель Django — Изучение веб-разработки
- Назад
- Обзор: Django
- Далее
Теперь, когда модели для сайта местной библиотеки созданы, добавим некоторые «настоящие» данные о книгах, используя административную панель Django Admin. Для начала мы покажем, как зарегистрировать в ней модели, потом как войти и создать какие-нибудь данные. В конце статьи мы покажем некоторые способы дальнейшего улучшения вида админ-панели.
Предусловия: | Сначала завершите: Руководство часть 3: использование моделей. |
---|---|
Цель: | Уяснить преимущества и ограничения админ-панели Django, научиться использовать её для создания записей для наших моделей. |
Приложение Django admin может использовать ваши модели для автоматического создания части сайта, предназначенной для создания, просмотра, обновления и удаления записей. Это может сэкономить вам много времени в процессе разработки, упрощая тестирование ваших моделей на предмет правильности данных. Оно также может быть полезным для управления данными на стадии публикации, в зависимости от типа веб-сайта. Проект Django рекомендует это приложение только для управления внутренними данными (т. е.для использования администраторами, либо людьми внутри вашей организации), так как модельно-ориентированный подход не обязательно является наилучшим интерфейсом для всех пользователей и раскрывает много лишних подробностей о моделях.
Все необходимые настройки, которые необходимо включить в admin приложение вашего веб-сайта, были сделаны автоматически, когда вы создали каркас проекта ( информацию о необходимых актуальных зависимостях смотрите здесь — Django docs) . В результате все, что необходимо сделать для того, чтобы добавить модели в приложение admin, это зарегистрировать их. В конце этой статьи мы представим краткую демонстрацию того, каким образом можно дополнительно настроить админ-панель для лучшего отображения данные наших моделей.
После регистрации моделей мы покажем как создать нового суперпользователя , войти на сайт от его имени и создать книги, авторов, экземпляры книг и жанры. Это будет полезным для тестирования представлений и шаблонов, которые мы начнём создавать в следующей части руководства.
Вначале откройте файл admin.py в папке приложения (/locallibrary/catalog/admin.py). Пока он выглядит так (заметьте, что он уже содержит импорт django.contrib.admin)
:
from django.contrib import admin # Register your models here.
Зарегистрируйте модели путём вставки следующего текста в нижнюю часть этого файла. Этот код просто импортирует модели и затем вызывает admin.site.register
для регистрации каждой из них.
from .models import Author, Genre, Book, BookInstance admin.site.register(Book) admin.site.register(Author) admin.site.register(Genre) admin.site.register(BookInstance)
Примечание: Если вы приняли участие в создании модели для представления естественного языка книги (см. обучающую статью о моделях), импортируйте и зарегистрируйте её тоже!
Это самый простой способ регистрации модели или моделей. Админ-панель имеет множество настроек. Мы рассмотрим другие способы регистрации ваших моделей ниже.
Для того, чтобы войти в админ-панель, нам необходимо иметь учётную запись пользователя со статусом Staff (сотрудники). Для просмотра и создания записей, пользователю также понадобится разрешение для управления всеми нашими объектами. Вы можете создать учётную запись «superuser», которая даёт полный доступ к сайту и все необходимые разрешения, используя manage.py.
Для создания суперпользователя вызовите следующую команду из той же папки, где расположен manage.py. Вас попросят ввести имя пользователя, адрес электронной почты и надёжный пароль.
python3 manage.py createsuperuser
После выполнения этой команды новый суперпользователь будет добавлен в базу данных. Теперь перезапустите сервер, чтобы можно было протестировать вход на сайт:
python3 manage.py runserver
Для входа в админ-панель откройте ссылку /admin (например http://127.0.0.1:8000/admin) и введите логин и пароль вашего нового суперпользователя (вас перенаправят на login-страницу и потом обратно на /admin после ввода всех деталей).
В этой части сайта отображаются все наши модели, сгруппированные по установленному приложению. Вы можете кликнуть на названии модели, чтобы получить список всех связанных записей, далее можете кликнуть на этих записях, для их редактирования . Также можно непосредственно кликнуть на ссылку Add, расположенную рядом с каждой моделью, чтобы начать создание записи этого типа.
Кликните на ссылке Add справа от Books, чтобы создать новую книгу (появится диалоговое окно как на картинке внизу). Заметьте, что заголовок каждого поля — это тип используемого виджета, и help_text
(если есть) совпадает со значением, которое вы указали в модели.
Введите значение для полей. Вы можете создавать новых авторов или жанры, нажимая на значок «+ «, расположенный рядом с соответствующим полем (или выберите существующее значение из списков, если вы уже создали их). Когда вы закончили, нажмите на SAVE, Save and add another, или Save and continue editing, чтобы сохранить записи.
Примечание: А сейчас, хотелось бы, чтобы вы добавили несколько книг, авторов и жанров (например, Фэнтези) в ваше приложение. Удостоверьтесь, что каждый автор и жанр включает пару различных книг (позже, когда мы реализуем представления «list» и «detail», это сделает их более интересными).
После того, когда книги добавлены, для перехода на главную страницу админ-панели кликните на ссылке Home в верхней части страницы. Потом кликните на ссылке Books для отображения текущего списка книг (или на одной из других ссылок, чтобы увидеть список соответствующей модели). После добавления нескольких книг список может выглядеть наподобие скриншота ниже. Отображается название каждой из книг. Его возвращает метод __str__()
в модели Book, созданной в предыдущей статье.
Для удаления книги из этого списка выберите чекбокс рядом с ней и действие delete… из выпадающего списка Action, а затем нажмите кнопку Go. Также можно добавить новую книгу, нажав на кнопку ADD BOOK.
Вы можете редактировать книгу, кликнув по ссылке с её названием. Страница редактирования книги, приведённая ниже, практически идентична странице добавления новой книги. Основные отличия — это заголовок страницы (Change book) и наличие кнопок Delete, HISTORY и VIEW ON SITE. Последняя присутствует, так как мы определили метод get_absolute_url()
в нашей модели.
Теперь перейдите назад на страницу Home (используя ссылку Home в навигационной цепочке вверху страницы) и просмотрите списки Author и Genre. В них уже должно быть несколько элементов, созданных при добавлении новых книг. Если хотите, добавьте ещё.
Однако у вас не будет ни одного экземпляра книги, потому что они не создаются из модели Book
(хотя можно создать книгу из модели BookInstance
— такова природа поля ForeignKey
). Для отображения страницы Add book instance (см. рисунок ниже) вернитесь на страницу Home и нажмите кнопку Add. Обратите внимание на длинный уникальный Id для идентификации конкретного экземпляра книги в библиотеке.
Создайте несколько экземпляров для каждой из ваших книг. Установите статус Available (доступен) для некоторых экземпляров и On loan (выдан) для остальных. Если статус экземпляра not Available (недоступен), то также установите дату возврата (Due back).
Вот и все! Вы изучили как запустить и использовать админ-панель. Также были созданы записи для Book
, BookInstance
, Genre
и Author
, которые можно будет использовать после создания наших собственных представлений и шаблонов.
Django выполняет неплохую работу по созданию базовой админ-панели используя информацию из зарегистрированных моделей:
- каждая модель имеет список записей, каждая из которых идентифицируется строкой, создаваемой методом
__str__()
модели, и связана с представлением для её редактирования. По умолчанию, в верхней части этого представления находится меню действий, которое может быть использовано для удаления нескольких записей за раз - Формы для редактирования и добавления записей содержат все поля модели, которые расположены вертикально в порядке их объявления в модели.
Можно настроить интерфейс пользователя для упрощения его использования. Некоторые доступные настройки:
- List views:
- добавление дополнительных отображаемых полей или информации для каждой записи.
- добавление фильтров для отбора записей по разным критериям (например, статус выдачи книги).
- добавление дополнительных вариантов выбора в меню действий и места расположения этого меню на форме.
- Detail views
- выбор отображаемых полей, их порядка, группирования и т.д.
- добавление связанных полей к записи (например, возможности добавления и редактирования записей книг при создании записи автора).
В этом разделе рассмотрим некоторые изменения для совершенствования интерфейса пользователя нашей местной библиотеки, а именно: добавление дополнительной информации в списки моделей Book
и Author
, а также улучшение расположения элементов соответствующих представлений редактирования. Пользовательский интерфейс моделей Language
and Genre
изменять не будем, так как это не даст заметного улучшения, поскольку он содержит только по одному полю!
Полное руководство по всем возможным вариантам настройки админ-панели можно найти в The Django Admin site (документация Django).
Регистрация класса ModelAdmin
Для изменения отображения модели в пользовательском интерфейсе админ-панели, необходимо определить класс ModelAdmin (он описывает расположение элементов интерфейса, где Model — наименование модели) и зарегистрировать его для использования с этой моделью.
Давайте начнём с модели Author. Откройте файл admin. py в каталоге приложения (/locallibrary/catalog/admin.py). Закомментируйте исходную регистрацию (используя префикс #) этой модели:
# admin.site.register(Author)
Теперь добавьте новый класс AuthorAdmin
и зарегистрируйте его как показано ниже:
# Define the admin class class AuthorAdmin(admin.ModelAdmin): pass # Register the admin class with the associated model admin.site.register(Author, AuthorAdmin)
Сейчас мы добавим классы ModelAdmin
для моделей Book
, и BookInstance
. Нам снова нужно закомментировать исходную регистрацию:
#admin.site.register(Book) #admin.site.register(BookInstance)
В этот раз для создания и регистрации новых моделей используем декоратор @register
(он делает то же самое, что и метод admin.site.register()
):
# Register the Admin classes for Book using the decorator @admin.register(Book) class BookAdmin(admin. ModelAdmin): pass # Register the Admin classes for BookInstance using the decorator @admin.register(BookInstance) class BookInstanceAdmin(admin.ModelAdmin): pass
Пока что все наши admin-классы пустые (см. «pass"
), поэтому ничего не изменится ! Добавим код для задания особенностей интерфейса моделей.
Настройка отображения списков
Сейчас приложение LocalLibrary отображает всех авторов, используя имя объекта, возвращаемое методом __str__()
модели. Это приемлемо, когда есть только несколько авторов, но, если их количество значительно, возможны дубликаты. Чтобы различить их или просто отобразить более интересную информацию о каждом авторе, можно использовать list_display (для добавления дополнительных полей).
Замените класс AuthorAdmin
кодом, приведённым ниже. Названия полей, которые будут отображаться в списке, перечислены в кортеже list_display в требуемом порядке (это те же имена, что и в исходной модели).
class AuthorAdmin(admin.ModelAdmin): list_display = ('last_name', 'first_name', 'date_of_birth', 'date_of_death')
Перезапустите сайт и перейдите к списку авторов. Указанные поля должны отображаться следующим образом:
Для нашей модели Book
добавим отображение полей author
и genre
. Поле author
— это внешний ключ (ForeignKey
) связи один к одному, поэтому оно будет представлено значением __str()__
для связанной записи. Замените класс BookAdmin
на версию, приведённую ниже.
class BookAdmin(admin.ModelAdmin): list_display = ('title', 'author', 'display_genre')
К сожалению, мы не можем напрямую поместить поле genre в list_display
, так как оно является ManyToManyField
(Django не позволяет это из-за большой «стоимости» доступа к базе данных). Вместо этого мы определим функцию display_genre
для получения строкового представления информации (вызов этой функции есть в list_display
, её определение см. ниже).
Примечание: Получение здесь значения поля genre
возможно не самая хорошая идея вследствие «стоимости» операции базы данных. Мы показываем это, потому что вызов функций в ваших моделях может быть очень полезен по другим причинам, например, для добавления ссылки Delete рядом с каждым пунктом списка.
Добавьте следующий код в вашу модель Book
(models.py). В нем создаётся строка из первых трёх значений поля genre
(если они существуют) и short_description
, которое может быть использовано в админ-панели.
def display_genre(self): """ Creates a string for the Genre. This is required to display genre in Admin. """ return ', '.join([ genre.name for genre in self.genre.all()[:3] ]) display_genre.short_description = 'Genre'
После сохранения модели и обновления админ-панели, перезапустите её и перейдите на страницу списка Books. Вы должны увидеть список книг, наподобие приведённого ниже:
Модель Genre
(и модель Language
, если вы её определили) имеет единственное поле. Поэтому нет необходимости создания для них дополнительных моделей с целью отображения дополнительных полей.
Примечание: целесообразно, чтобы в списке модели BookInstance
отображались хотя бы статус и ожидаемая дата возврата. Мы добавили это в качестве «испытания» в конце этой статьи!
Добавление фильтров списка
Если в вашем списке есть множество элементов, может быть полезной возможность фильтрации отображаемых пунктов. Это выполняется путём перечисления их в атрибуте list_filter
. Замените класс BookInstanceAdmin
на следующий:
class BookInstanceAdmin(admin.ModelAdmin): list_filter = ('status', 'due_back')
Представление списка теперь будет содержать панель фильтрации справа. Обратите внимание, как выбирать даты и статус для фильтрации:
Формирование макета с подробным представлением
По умолчанию в представлениях деталей отображаются все поля по вертикали в порядке их объявления в модели. Вы можете изменить порядок декларации, какие поля отображаются (или исключены), используются ли разделы для организации информации, отображаются ли поля горизонтально или вертикально, и даже какие виджеты редактирования используются в админ-формах.
Примечание: Модели LocalLibrary относительно просты, поэтому нам не нужно менять макет, но мы всё равно внесём некоторые изменения, просто чтобы показать вам, как это сделать.
Управление отображаемыми и вложенными полями
Обновите ваш AuthorAdmin класс, чтобы добавить строку полей, как показано ниже (выделено полужирным шрифтом):
class AuthorAdmin(admin.ModelAdmin): list_display = ('last_name', 'first_name', 'date_of_birth', 'date_of_death') fields = ['first_name', 'last_name', ('date_of_birth', 'date_of_death')]
Атрибут полей перечисляет только те поля, которые должны отображаться в форме, по порядку. Поля отображаются по вертикали по умолчанию, но будут отображаться горизонтально, если вы дополнительно группируете их в кортеже (как показано в полях «date» выше).
Перезагрузите приложение и перейдите к подробному представлению автора — он должен теперь отображаться, как показано ниже:
Примечание: Так же, вы можете использовать exclude
атрибут для объявления списка атрибутов, которые будут исключены из формы (все остальные атрибуты в модели, будут отображаться).
Разделение на секции/Выделение подробного представления
Вы можете добавлять «разделы» (sections) для группировки связанной информации в модели в форме детализации, используя атрибут fieldsets .
В модели BookInstance
мы имеем информацию соответствия конкретной книги (т.е. name
, imprint
, and id
) и датой когда она вновь станет доступной (status
, due_back
). Мы можем добавить их в разные секции, добавив текст жирным шрифтом в наш BookInstanceAdmin
класс.
@admin.register(BookInstance) class BookInstanceAdmin(admin.ModelAdmin): list_filter = ('status', 'due_back') fieldsets = ( (None, { 'fields': ('book','imprint', 'id') }), ('Availability', { 'fields': ('status', 'due_back') }), )
Каждая секция имеет свой заголовок (или None
, если заголовок не нужен) и ассоциированный кортеж полей в словаре — формат сложный для описания, но относительно простой для понимания, если вы посмотрите на фрагмент кода, представленный выше.
Перезапустите сайт и перейдите к списку экземпляров; форма должна отображаться следующим образом:
Встроенное редактирование связанных записей
Иногда бывает полезно иметь возможность добавлять связанные записи одновременно. Например, имеет смысл иметь как информацию о книге, так и информацию о конкретных копиях, которые вы получили на той же странице подробностей. К примеру, вполне логично получить и информацию о книге, и информацию о конкретных копиях, зайдя на страницу детализации.
Вы можете это сделать, объявив inlines, и указав тип TabularInline (горизонтальное расположение) или StackedInline (вертикальное расположение, так же как и в модели по умолчанию). Вы можете добавить BookInstance
информацию в подробное описание Book
, добавив строки, представленные ниже и располагающиеся рядом с BookAdmin
:
class BooksInstanceInline(admin.TabularInline): model = BookInstance @admin.register(Book) class BookAdmin(admin. ModelAdmin): list_display = ('title', 'author', 'display_genre') inlines = [BooksInstanceInline]
Попробуйте перезапустить приложение, а затем взгляните на представление книги — внизу вы должны увидеть экземпляры книги, относящиеся к этой книге:
В этом случае, всё, что мы сделали — объявили наш встроенный класс tablular, который просто добавляет все поля из встроенной модели. Вы можете указать все виды дополнительной информации для макета, включая отображаемые поля, их порядок, независимо от того, являются ли они только для чтения или нет, и т. д. (См. TabularInline для получения дополнительной информации).
Примечание: В этой функции есть некоторые неприятные ограничения! На скриншоте выше у нас есть три существующих экземпляра книги, за которыми следуют три поля для новых экземпляров книги (которые очень похожи!). Было бы лучше НЕ иметь лишних экземпляров книг по умолчанию и просто добавить их с помощью ссылки Add another Book instance или иметь возможность просто перечислять BookInstance
s как нечитаемые здесь ссылки. Первый вариант можно сделать, установив extra
атрибут в 0 в модели BookInstanceInline
, попробуйте сами.
Мы многое изучили в этом разделе и теперь настало время вам самостоятельно попробовать несколько вещей:
- Для представления списка
BookInstance
, добавьте код для отображения книги, статуса, даты возврата, и id (вместо значения по умолчанию возвращаемого__str__()
). - Добавьте встроенный список перечня
Book
в представление спискаAuthor
, используя тот же самый подход, который мы применили дляBook
/BookInstance
.
Вот и всё! Теперь вы узнали, как настроить сайт администрирования как в самой простой, так и в улучшенной форме, о создании суперпользователя и о том, как перемещаться по сайту администратора, просматривать, удалять и обновлять записи. По пути вы создали множество книг, экземпляров, жанров и авторов, которые мы сможем перечислить и отобразить, как только мы создадим собственный вид и шаблоны.
- Writing your first Django app, part 2: Introducing the Django Admin (Django docs)
- The Django Admin site (Django Docs)
- Назад
- Обзор: Django
- Далее
Last modified: , by MDN contributors
Django CMS: обзор программного обеспечения для управления контентом
Django CMS является очень популярной платформой управления контентом с открытым исходным кодом , широко используемой администраторами веб-сайтов в основном из-за ее легкого ядра. Его легко развернуть и интегрировать с существующими системами и другими популярными приложениями, и он настолько эффективен, что международные организации, бренды и компании, включая L’Oreal, National Geographic и Parrot , решили использовать эту платформу для питания своих систем. управление и распространение контента. Сотни разработчиков работают над улучшением продукта и улучшением взаимодействия с пользователем, добавляя новые и полезные функции и устраняя ошибки, снижающие его производительность. Система поставляется с опциями, которые идеально подходят для компаний, работающих в нескольких странах, где вам необходимо иметь веб-сайты на нескольких языках.
DJANGO CMS – РУКОВОДСТВО
В этом руководстве мы увидим, как установить и настроить это решение CMS :
DJANGO CMS – ВОЗМОЖНОСТИ
- Функция двойного щелчка по тексту 04 изображения, кнопки или другой контент открывает окно для редактирования выбранного элемента
- Обработка внешнего интерфейса : редактирование всего содержимого также возможно непосредственно с внешнего интерфейса
- Плагины многократного использования : расширения для CMS можно использовать в разных частях сайта
- Управление разными сайтами : управление разными сайтами через одну административную панель
- Гибкая архитектура : все элементы можно свободно размещать на сайте
- Управление разрешениями : назначение конкретных разрешений для каждого пользователя
- Управление разными версиями : все изменения в проекте могут быть сохранены, а также могут быть восстановлены позже
- Многоязычная функция : возможно, что все страницы и содержимое будут доступны на разных языках; с помощью правил вы можете определить, как себя вести, если контент недоступен на нужном языке
- Управление мультимедийным контентом : вы можете легко управлять всеми видами мультимедийных файлов, такими как изображения, PDF-файлы, видео и т. д.
Заключение
Django CMS — хороший корпоративный уровень 9Система управления контентом 0003 , созданная в 2007 году. Полностью настраиваемая, с множеством функций, и сообщество всегда готово помочь вам, если вам это нужно.
Чего ты ждешь? Попробуйте эту платформу и оставьте отзыв.
Вас также может заинтересовать: Titan CMS
ТОЧНЫЙ:
Удобство использования: 9,5 /10 | Скорость: 9,5 /10 | Характеристики: 9,5 /10 | Опора: 9,5 /10 | Цена: 9,5 /10 |
Обзор Python CMS Framework
: Трясогузка против Django-CMS
Введение
В этой обзорной статье Python CMS я расскажу и сравню Django CMS
и Wagtail CMS
, две самые популярные среды CMS в мире Python.
Прочитав этот пост, вы получите:
- Разница пользовательского интерфейса между
Django CMS
иWagtail CMS
- Структуры проекта
Django CMS
иWagtail CMS
- Информация об экосистеме и некоторые полезные ресурсы, которые помогут вам узнать больше о
Django CMS
иWagtail CMS
Шаг 1. Обсудите что-нибудь общее
Django CMS
и Wagtail CMS
разработаны на основе платформы Django, являются проектами с открытым исходным кодом, а код размещен на Github.
У обоих есть активные сопровождающие для решения проблем GitHub и PR GitHub. Если вы хотите, вы можете получить больше, например, поддержку экспорта, хостинг с их официальных сайтов.
Из официальной документации мы знаем, что основные функции CMS реализованы в обеих платформах. Например, редактор WYSIWYG, иерархия страниц, категория, теги и т. д.
Шаг 2.
Расскажите о пользовательском интерфейсе
Обзор пользовательского интерфейса администратора Django CMS
Поскольку мы можем импортировать таблицы стилей и javascript на первые страницы, чтобы они выглядели потрясающе, поэтому здесь я хотел бы поговорить только об интерфейсе администратора.
Ниже приведен скриншот страницы администрирования Django-CMS.
Django CMS сделал это, переопределив шаблон администратора Django, у него есть специальный пакет для обработки этой работы, который называется djangocms-admin-style
.
В Django CMS это типичный рабочий процесс для добавления страницы.
В админке Django вы создаете страницу и устанавливаете некоторые настройки, такие как заголовок, метаданные и т. д.
Создав страницу, вы можете перейти на главную страницу и начать редактирование содержимого. Контент, который вы добавили на страницу, можно увидеть в режиме реального времени, как в некоторых онлайн-инструментах для создания целевых страниц.
Обзор пользовательского интерфейса администратора трясогузки
Трясогузка CMS
создала собственный интерфейс администратора с нуля, что означает, что он имеет больший контроль над всеми элементами пользовательского интерфейса администратора.
Выше скриншот страницы администратора Трясогузки, как видите, страница чистая и простая в использовании. На боковой панели вы можете быстро искать свои страницы и управлять изображениями и документами.
Вы можете редактировать контент в вкладка контента
, отредактируйте другие настройки, такие как SEO-информация, на вкладке продвижения
и настроек
.
Шаг 3, рассказ о структуре проекта
Структура проекта Django CMS
Django-CMS выпускается с 2007 года, структура фреймворка очень стабильная и зрелая, она содержит множество встроенных функций, поэтому вы можете легко начать работу.
Django CMS переопределяет шаблон администратора Django, чтобы сделать интерфейс администратора более приличным, а некоторые js также улучшают взаимодействие с пользователем.
Однако, поскольку вся функция администрирования построена на администраторе Django, интерфейс пользовательского интерфейса не является дружественным для нетехнических специалистов
Более того, если у вас есть приложение Django и вы используете администратор Django для управления моделями данных. Django-CMS может не очень хорошо работать в этом сценарии. На самом деле, я проверил официальный онлайн-документ Django-CMS, я не могу найти ни слова, говорящего об интеграции Django-CMS в существующее приложение Django, что означает, что Django-CMS может использоваться только как автономный проект. Я думаю, вам действительно стоит подумать об этом моменте.
Структура проекта «Трясогузка»
Трясогузка выпускается с 2014 года, даже она появляется намного позже, чем Django-CMS на GitHub, все они получили 6000+ звезд на github.com. Судя по запросам на вытягивание и проблемам, кажется, что человека вокруг Трясогузки более активны и каждый день пытаются сделать этот фреймворк намного лучше
Самым большим преимуществом Wagtail является гибкость, , потому что панель администратора не построена на панели администратора Django, поэтому панель администратора Wagtail может сосуществовать с панелью администратора Django, эта функция также позволяет легко интегрировать CMS в ваш существующий проект Django.
Более того, поскольку Трясогузка имеет больший контроль над тем, как данные вводятся и упорядочиваются в базе данных, это дает нам несколько довольно интересных функций. Здесь я хочу рассказать о двух лучших из них.
Первый — StreamField
, вы можете рассматривать Streamfield
как специальную коллекцию блоков. Вы можете определить пользовательские блоки по своему усмотрению в Wagtail CMS и написать шаблоны для управления отображением блоков.
StreamField
может помочь вам организовать различный контент простым способом, например, вы можете добавить CTA, Chart, Markdown, RichText и другие элементы в один пост, не касаясь HTML. Это может ускорить весь процесс редактирования, и я думаю, что это одна из лучших функций трясогузки.
ПРИМЕЧАНИЕ. Django-CMS имеет аналогичные функции (называемые плагинами), но я все же считаю, что Wagtail лучше справляется с этой задачей, потому что я могу писать меньше и делать больше.
Второй — FormBuilder
, вы можете создать гибкую форму в админке Трясогузки без кодирования, и все поля формы могут быть настроены. А еще в Трясогузке можно построить многошаговую форму. Ниже видео, чтобы показать вам, как создать простую контактную форму с помощью Wagtail, вся работа выполняется в админке Wagtail.
Обе платформы имеют расширенные сторонние расширения, так что вы можете проверить список перед тем, как приступить к работе.
Ниже приведена часть awesome-django-cms
aldryn-forms — построитель динамических форм aldryn-gallery — плагин галереи aldryn-mailchimp — интеграция с MailChimp cmsbootstrap — приступайте к работе с расширяемой темой на основе Twitter Bootstrap. djangocms-accordion — плагин аккордеона cmsplugin-contact — Плагин контакта для django-cms с защитой от спама и i18n cmsplugin-contact-plus — конструктор форм для cms с защитой от спама cmsplugin-filer — плагины django-filer cmsplugin-forms-builder — интеграция django-forms-builder с django-cms cmsplugin-sections — Плагин раздела (очень полезен для одностраничных сайтов) ......
Ниже представлена часть офигенной трясогузки
трясогузка-читабельность — проверьте, насколько читабелен контент, который вы вводите в трясогузку. Wagtail TinyMCE — интеграция редактора TinyMCE для Wagtail. django-oscar-wagtail — интеграция трясогузки для Oscar Commerce (или интеграция Oscar Commerce для трясогузки?) Wagtail Analytics — панель управления Google Analytics в панели администратора Wagtail. ......
По моим наблюдениям, сообщество Wagtail более активно, если вы столкнетесь с проблемой, вы можете задать вопрос в Stackoverflow или даже в рабочей области Wagtail Slack. Там вы найдете много любителей трясогузок!
Заключение
Так кто из них победитель? Здесь нет твердого ответа. Когда вы решите, какой из них использовать, вам нужно
- Проверьте экосистему и посмотрите, может ли сторонний пакет помочь вам выполнить работу
- Привыкли ли ваши потенциальные пользователи CMS к возможности редактирования.
Вы также можете проверить таблицу ниже для лучшего решения.
Каркас | Джанго-CMS | Трясогузка |
---|---|---|
Гитхаб | 6000+ звезд, с 2010 года | 6000+ звезд с 2014 года, быстро растет |
Интеграция и расширение | Лучше для автономного проекта, и вы можете добавлять функции, устанавливая сторонние пакеты (надстройки). | Можно интегрировать в существующий проект Django или использовать его как отдельный проект, можно добавлять функции путем установки сторонних пакетов. |