Cat

Django 9. Регистрация модели

В этом посте мы зарегистрируем модель в панели администратора Django, а так же начнём с ней взаимодействовать.

Все статьи

Icon Link

Дополнительные материалы

Icon Link

Реклама

Icon Link
Сайт на Django proDream 08 Август 2023 Просмотров: 953

Для того, что бы можно было взаимодействовать с моделью, а именно добавлять, изменять или редактировать объекты из панели администратора, необходимо модель там зарегистрировать.

 

Регистрируем модель.

Откроем файл admin.py в директории приложения и создадим класс PostFilesAdmin унаследованный от Django-класса ModelAdmin.
И пропишем там три поля:

  • list_display - со списком полей модели, значения которых необходимо отображать на странице модели. В нашем случае, это поля - название, код и количество загрузок.
  • search_fields - определяет, по каким полям в модели будет происходить поиск.
  • exclude - определяет поля, которые необходимо скрыть при создании объекта модели. В нашем случае это поле с количеством скачиваний. Поскольку оно всегда начинается с 0, то и переопределять нет необходимости.
    Модель описали, теперь надо её зарегистрировать. Это можно сделать двумя способами:
  1. В конце файла прописать admin.site.register(models.PostFilesModel, PostFilesAdmin). Где первым параметром передаётся модель из файла models.py, а вторым написанный выше класс для этой модели.
  2. С помощью декоратора @admin.register(models.PostFilesModel). В параметр которого передаём необходимую модель.
    Субъективно, мне больше нравится второй вариант.

 

Код:

from django.contrib import admin

from . import models


@admin.register(models.PostFilesModel)
class PostFilesAdmin(admin.ModelAdmin):
    list_display = ('title', 'code', 'download_count', )
    search_fields = ['title', ]
    exclude = ['download_count', ]

 

Проверяем работу в панели администратора.

Модель зарегистрирована, давайте проверим её работу.
Запустим Django командой python manage.py runserver и перейдём в панель администратора.

 

В списке должен появиться блок BLOG с единственным пунктом Файлы постов.


Нажмём на него и попадём на страницу со списком записей. Пока что тут пусто. 


Нажмём "Добавить" в меню слева или кнопку "Добавить файл поста" в правой части экрана.

 

В открывшемся окне будет всего два поля, первое название, а второе файл для загрузки.

 

Попробуйте, что-то написать и прикрепить. После чего нажмите "Сохранить".
 

После сохранения, нас перебрасывает обратно к списку записей и сверху есть плашка с сообщением "Файл поста "Тестовый файл" был успешно добавлен.". 
 

Вернёмся в IDE и в диспетчере файлов увидим, что в корне проекта появилась папка media, а в ней post_files и отправленный ранее файл.
И если мы в адресной строке прямо пропишем путь к файлу: http://127.0.0.1:8000/media/post_files/ваш_файл_включая_расширение, то файл начнёт скачиваться! А по такому же пути в адресе http://pressanybutton.ru, но с файлом 68.zip будет архивчик с картинками 😉

Файлы загружаются и отдаются пользователю по пути их расположения.

Автор

    Нет комментариев

    Реклама