Django 9. Регистрация модели
В этом посте мы зарегистрируем модель в панели администратора Django, а так же начнём с ней взаимодействовать.
Дополнительные материалы
Для скачивания материалов необходимо войти или зарегистрироваться
Файлы также можно получить в Telegram-боте по коду: 387443
Реклама
Для того, что бы можно было взаимодействовать с моделью, а именно добавлять, изменять или редактировать объекты из панели администратора, необходимо модель там зарегистрировать.
Регистрируем модель.
Откроем файл admin.py
в директории приложения и создадим класс PostFilesAdmin
унаследованный от Django-класса ModelAdmin
.
И пропишем там три поля:
list_display
- со списком полей модели, значения которых необходимо отображать на странице модели. В нашем случае, это поля - название, код и количество загрузок.search_fields
- определяет, по каким полям в модели будет происходить поиск.exclude
- определяет поля, которые необходимо скрыть при создании объекта модели. В нашем случае это поле с количеством скачиваний. Поскольку оно всегда начинается с 0, то и переопределять нет необходимости.
Модель описали, теперь надо её зарегистрировать. Это можно сделать двумя способами:
- В конце файла прописать
admin.site.register(models.PostFilesModel, PostFilesAdmin)
. Где первым параметром передаётся модель из файлаmodels.py
, а вторым написанный выше класс для этой модели. - С помощью декоратора
@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 будет архивчик с картинками 😉
Файлы загружаются и отдаются пользователю по пути их расположения.
Все статьи