Рубрики
Без рубрики

Построение административной панели с администратором Django в 2021 году

Административные панели лежат в основе каждой бизнес -операции, будь то продажи, аналитика, пользователь … Tagged с Django, Admin, Python.

Административные панели лежат в основе каждой бизнес -операции, будь то продажи, аналитика, управление пользователями и многое другое. Тем не менее, нелегко найти правильные инструменты, которые помогут вам создать надежные и масштабируемые системы, не тратя слишком много времени.

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”