Административный сайт Django
Навигация по проекту |
|
Справочник моделей Django |
В состав Django входит полностью готовый административный сайт. Административный сайт предоставляет доступ к добавлению, удалению, редактированию и многому другому для управления данных сайта. Этот сайт используется администраторами сайта, простой пользователь не сможет на него зайти.
Содержание страницы: |
1. Создание суперпользователя в Django
Для управления административным сайтом требуется создать суперпользователя. Для этого введите команду:
python manage.py createsuperuser
После вы увидите запрос на ввод логина, электронной почты и пароля.
Имя пользователя (leave blank to use '*'): pythonclass
Адрес электронной почты: info@pythonclass.ru
Password:*****
Password (again):*****
Superuser created successfully.
В конце вы увидите сообщение что суперпользователь создан ( Superuser created successfully )
Теперь запустите сервер разработки командой python manage.py runserver и откройте в браузере страницу http://127.0.0.1:8000/admin/. Вы увидите страницу авторизации, введите логин и пароль, который вы создали для суперпользователя. Войдя на административный сайт, вы увидите его главную страницу:
На главной странице административного сайта у вас уже загружены две модели. Модель "Группы" и "Пользователи". Они находятся в приложение 'django.contrib.auth'. В модели "Пользователи" будут находится все пользователи, созданные на данный момент. Открыв его, вы увидите суперпользователя, созданного в предыдущем разделе.
2. Добавление собственных моделей на сайт администрирования
Теперь пришло время добавить на сайт администрирования собственные модели Category и Product созданных во втором разделе. Отредактируйте файл admin.py приложения shop и вставьте следующий код:
from django.contrib import admin
from .models import Category, Product
class CategoryAdmin(admin.ModelAdmin):
list_display = ['name', 'slug']
prepopulated_fields = {'slug': ('name',)}
admin.site.register(Category, CategoryAdmin)
class ProductAdmin(admin.ModelAdmin):
list_display = ['name', 'slug', 'price', 'available', 'created', 'updated']
list_filter = ['available', 'created', 'updated']
list_editable = ['price', 'available']
prepopulated_fields = {'slug': ('name',)}
admin.site.register(Product, ProductAdmin)
В начале мы импортируем наши модели from .models import Category, Product. После создаем два класса CategoryAdmin и ProductAdmin, которые являются наследниками базового класса ModelAdmin.
- list_display - атрибут, который задает набор выводимых в списке полей. В категории мы выводим 'name', 'slug', а в продукте 'name', 'slug', 'price', 'available', 'created', 'updated'. Все эти поля мы сможем заполнять через административный сайт.
- prepopulated_fields - атрибут, который автоматически генерирует slug из поля name.
- list_filter - создает возможность фильтровать продукты по указанным параметрам. Фильтр будет находиться справа на административном сайте.
- list_editable - атрибут, который задает возможность править поля, непосредственно на странице списка записей, не переходя на страницу продукта.
admin.site.register(Category, CategoryAdmin), admin.site.register(Product, ProductAdmin) - сообщает Django, что управление моделью должно осуществляться через административный сайт.
Перезапустим сервер разработки, перейдем на административный сайт и добавим несколько категорий и продуктов.
В результате добавления наших моделей на сайт администрирования, мы получили возможность редактирования, добавления и фильтрации наших продуктов. Фильтр находитя справа от наименований и дает возможность фильтровать по критериям, которые мы добавили в list_filter = ['available', 'created', 'updated'].
Далее: Создание представлений (views) в Django
Назад: Создание моделей в Django для онлайн-магазина