Регистрация моделей 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 будет выглядеть следующим образом:

results matching ""

    No results matching ""