Регистрация моделей catalog на сайте администрирования
Давайте добавим наши модели на сайт администрирования, чтобы мы могли легко управлять категориями и продуктами. Измените файл 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', 'stock', 'available', 'created', 'updated']
list_filter = ['available', 'created', 'updated']
list_editable = ['price', 'stock', 'available']
prepopulated_fields = {'slug': ('name',)}
admin.site.register(Product, ProductAdmin)
Помните, что мы используем атрибут prepopulated_fields, чтобы указать поля, в которых значение автоматически задается с использованием значения других полей. Как вы уже видели, это удобно для создания алиасов(slug). Атрибут list_editable в классе ProductAdmin используется для задания полей, которые могут быть отредактированы на странице отображения списка сайта администрирования. Это позволит редактировать несколько строк одновременно. Любое поле в list_editable также должно быть указано в атрибуте list_display, поскольку могут быть изменены только отображаемые поля.
Теперь создайте суперпользователя следующей командой:
python manage.py createsuperuser
Запустите сервер разработки командой python manage.py runserver
. Откройте в браузере http://127.0.0.1:8000/admin/shop/product/add/ и войдите в систему с помощью только что созданного пользователя. Добавьте новую категорию и продукт с помощью интерфейса администрирования. Страница Products будет выглядеть следующим образом: