Административные панели лежат в основе каждой бизнес -операции, будь то продажи, аналитика, управление пользователями и многое другое. Тем не менее, нелегко найти правильные инструменты, которые помогут вам создать надежные и масштабируемые системы, не тратя слишком много времени.
Django Admin был приобретенным решением для многих разработчиков за эти годы. Он обеспечивает быструю, простой в использовании и высокодостаточной основе для построения приложений с полным стеком и административных панелей. Эти причины делают его отличным выбором для создания административных панелей.
Чтобы показать вам, как создавать административные панели с Django, мы создадим модернизацию для модераторов для управления бизнес -обзорами. Все это будет построено на Postgres и Общественный набор данных Yelp .
Вот краткий обзор того, что мы будем строить:
Потрясающе, верно? Давайте начнем!
Настройка проекта
Мы начинаем с настройки проекта. Проект представляет собой набор настроек для экземпляра Django, который включает в себя базу данных и конфигурацию приложения. Проект может содержать несколько приложений, но нам понадобится только один.
Чтобы настроить проект для нашей панели обзора Yelp, используйте свой терминал и CD
в каталог, где вы хотите сохранить проект и запустить приведенную ниже команду:
django-admin startproject yelp
Когда это будет сделано, CD
в визг
каталог, который был создан и запустите сервер, запустив команду ниже:
python manage.py runserver
Сервер автоматически наблюдает за проектом для изменений, поэтому вам не нужно перезагрузить его вручную
Создание приложения
В Джанго вы можете иметь несколько приложений в проекте. Это означает, что приложения являются модульными и могут использоваться в нескольких проектах.
Давай и создай Отзывы
Приложение, которое будет удерживать код для панели инструментов, запустив ниже команду:
python manage.py startapp reviews
Вы заметите, что Отзывы
Справочник был создан с помощью нескольких файлов. Вот куда пойдет весь код.
Регистрация приложения и базы данных
Далее нам нужно сообщить Джанго о отзывы
Приложение мы только что создали. Мы делаем это, зарегистрировав приложение.
Чтобы зарегистрировать приложение, откройте Yelp/settings.py
Файл и добавить Reviews.apps. ReviewSconfig
к Insted_apps
список. После добавления, Insted_apps
должен выглядеть так:
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'reviews.apps.ReviewsConfig', ]
Когда это будет сделано, перейдите к настройке соединения базы данных в Базы данных
толковый словарь:
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql', 'NAME': 'your_database', 'USER': 'your_database_user', 'PASSWORD': 'your_database_password', 'HOST': '127.0.0.1', 'PORT': '5432', } }
Сохраните изменения и запустите приведенную ниже команду, чтобы Django мог настроить таблицы в базе данных для приложения в Insted_apps
список:
python manage.py migrate
Последнее, что нужно сделать здесь, – это изменить путь административной панели в Yelp/urls.py
Файл так, чтобы он был установлен на корневом пути вместо/администратора. Обновите urlpatterns
Список на:
urlpatterns = [ path('', admin.site.urls), ]
Создание моделей
Со всем настроенным мы можем продолжить создание режимов, которые описывают макет базы данных. Модели также показывают отношения между таблицами и могут использоваться для указания проверки и виджетов, которые Django создаст для пользовательского интерфейса.
Нам понадобятся три модели: одна для предприятий, пользователей и обзоров. Чтобы создать их, отправляйтесь в Отзывы/models.py
и вставьте приведенный ниже код:
from django.db import models # Model for Businesses class Business(models.Model): id = models.CharField(primary_key=True, max_length=100) name = models.CharField(max_length=100) address = models.CharField(max_length=100, null=True) city = models.CharField(max_length=100) state = models.CharField(max_length=100) stars = models.FloatField() categories = models.TextField(null=True) def __str__(self): return self.name # Model for Users class User(models.Model): id = models.CharField(primary_key=True, max_length=100) name = models.CharField(max_length=100) yelping_since = models.DateTimeField() def __str__(self): return self.name # Options of the select widget on the UI status_choice = (('approved', 'APPROVED'), ('pending', 'PENDING'), ('rejected', 'REJECTED')) # Model for Reviews class Review(models.Model): id = models.CharField(primary_key=True, max_length=100) status = models.CharField( max_length=10, choices=status_choice, default='pending') user = models.ForeignKey(User, on_delete=models.CASCADE) business = models.ForeignKey(Business, on_delete=models.CASCADE) stars = models.IntegerField() text = models.TextField() date = models.DateTimeField() def __str__(self): return self.user.name
Вы заметите, что каждый класс представляет модель таблицы в базе данных. Каждая модель имеет переменные, которые представляют поля. Поля аннотируются с их соответствующими типами поля и валидацией/отношениями, где это необходимо.
Теперь давайте создадим миграции для этих моделей. Запустите ниже команду, чтобы сделать это:
python manage.py makemigrations reviews
Затем примените миграции
python manage.py migrate
Посмотрите на базу данных, вы заметите, что таблицы для Отзывы_business
, Reviews_user
, а также Reviews_review
были созданы. На этом этапе вы можете импортировать набор данных Yelp Анкет
Скачать Общественный набор данных Yelp и импортировать его в Отзывы_business
, Reviews_user
, а также Reviews_review
столы соответственно.
Принимая приложение для вращения
Готовы ли мы взять приложение для вращения? Не так быстро. Вам нужно будет создать пользователя администратора, чтобы иметь возможность просмотреть сайт.
Чтобы создать пользователя администратора, запустите следующую команду и ответьте на подсказку:
python manage.py createsuperuser
Как только это будет сделано, запустите сервер (если вы ранее закрыли его) и посетите http://127.0.0.1:8000/ :
python manage.py runserver
После входа в систему вы заметите, что ни одна из созданных нами моделей не отображается. Давайте исправьте это в следующем разделе.
Отображение приложения Reviews
Чтобы сделать модели из приложения обзоров видимыми на панели администратора, вам нужно зарегистрировать их в Отзывы/admin.py
файл.
Это довольно легко сделать. Добавьте приведенный ниже код в свой Отзывы/admin.py
файл:
from django.contrib import admin from .models import Business, Review admin.site.register(Review) admin.site.register(Business)
Сохраните файл и вернитесь в браузер. После перезагрузки вы должны увидеть Бизнес
под Обзор
приложение.
Легко, как пирог, верно?
Играйте с приборной панелью, чтобы увидеть силу Джанго. Но вы заметите, что данные данных отображаются немного, и мы не видим отзывов для каждого бизнеса. Джанго дает нам возможность улучшить пользовательский опыт, так что давайте сделаем это.
Настройка приборной панели
Мы можем сделать обзоры Dashboard намного лучше, добавив некоторые параметры для ее настройки.
Отправляйтесь в Отзывы/admin.py
и заменить его контент С приведенным кодом:
from django.contrib import admin from .models import Business, Review # A class that displays Reviews in a table form class ReviewInline(admin.TabularInline): model = Review # Don't add any extra blank form for new Reviews extra = 0 # A class that lets us customize the Business list class BusinessAdmin(admin.ModelAdmin): # Embed reviews in related businesses inlines = [ReviewInline] # Show the below properties in the Business list list_display = ('name', 'city', 'stars', 'categories') # Add filters for state and stars list_filter = ['stars', 'state'] # Make the Business list searchable by name search_fields = ['name'] # We don't want ids showing up exclude = ('id',) admin.site.register(Business, BusinessAdmin)
Сохраните файл и отправляйтесь в свой браузер. Вы сразу заметите, что у вас есть гораздо лучший опыт на панели панели.
Мы можем дополнительно сделать приборную панель, удалив раздражающий Аутентификация и авторизация
приложение, которое отображается по умолчанию.
Чтобы сделать это, добавьте эти строки в свой Отзывы/admin.py
файл:
# Add this to the top of your file from django.contrib.auth.models import Group, User # …previous code goes here # Add this to the bottom of your file admin.site.unregister(User) admin.site.unregister(Group)
Сохраните файл и перезагрузите браузер. Теперь у нас есть супер чистая функциональная панель Django Reviews.
Вывод
Теперь, когда приложение полностью построено, вы можете поиграть с ним. Эта панель мониторинга позволяет модераторам поиск бизнеса и утверждать отзывы, сделанные пользователями.
Вот все в действии:
И это обертка!
Если вы нашли эту статью полезной, пожалуйста, оставьте подобное и проверьте наш потрясающий продукт для создания внутренних инструментов appsmith.com
Оригинал: “https://dev.to/appsmith/building-an-admin-panel-with-django-admin-in-2021-2e52”