| Добавление ваших моделей на интерфейс администратора | ||
|---|---|---|
| Пред. | Глава 6. Интерфейс администратора Django | След. |
Есть одна важная часть, которую мы ещё не сделали. Давайте добавим наши модели в интерфейс администратора, что бы мы могли добавлять, редактировать и удалять объекты в наших таблицах с помощью этого изящного интерфейса. Продолжим наш пример с книгами из главы «Модели», в которой мы создали три модели: Publisher, Author и Book.
В каталоге books
(mysite/books) создайте файл
admin.py и добавьте в него следущие строки:
from django.contrib import admin
from mysite.books.models import Publisher, Author, Book
admin.site.register(Publisher)
admin.site.register(Author)
admin.site.register(Book)
Этот код указывает Django предоставлять интерфейс для каждой из перечисленных моделей.
После этого перейдите на домашнюю страницу административной части (http://127.0.0.1:8000/admin/), вы должны увидеть раздел «Books» с ссылками на Authors, Books и Publishers. (Возможно потребуется остановить и запустить тестовый сервер, чтобы сделанные изменения вступили в силу.)
Теперь у вас есть полнофункциональный интерфейс администратора для этих моделей. Это было не так сложно!
Добавьте и отредактируйте записи для наполнения вашей базы данных данными. Если вы следовали примерам создания объектов Publisher, которые были даны в главе «Модели» (и не удалили их), вы увидите их записи на странице списка объектов модели.
Следует упомянуть то, что интерфейс администратора обрабатывает
внешние ключи и связь многие-ко-многим, которые присутствуют в
модели Book. Вспомним как выглядит
модель Book:
class Book(models.Model):
title = models.CharField(max_length=100)
authors = models.ManyToManyField(Author)
publisher = models.ForeignKey(Publisher)
publication_date = models.DateField()
def __unicode__(self):
return self.title
На странице «Добавить книгу» (http://127.0.0.1:8000/admin/books/book/add/), издатель (ForeignKey) представлен выпадающим списком, а автор (ManyToManyField) представлен выпадающим списком с множественным выбором. Рядом с этими полями находится иконка зелёного цвета с изображением плюса, которая позволяет добавлять связаные обьекты соответствующего типа. Например, если нажать на иконку возле поля «Издатель», появится дополнительное окно, позволяющее добавить издателя. После того, как вы успешно добавите издателя в этом окне, в форме добавления книги добавится созданый издатель. Красиво.
| Пред. | Уровень выше | След. |
| Использование интерфейса администратора | Начало | Как работает интерфейс администратора |
4 комментария | Оставьте комментарий
В urls.py надо добавить admin.autodiscover() иначе в админке будет написано "нет прав"
Точнее раскомментировать, такая строка там уже есть
При попытке внести запись об Авторе через админку получаю ошибку
Attempted access to '\tmp\Picture.jpg' denied
Картинку D:\Picture.jpg я выбираю в качестве значения для поля Headshot.
Откуда возникает путь \tmp\...? MEDIA_ROOT пробовал задавать, ничего не меняется
Ответ на VladislavKabachny
При попытке внести запись об Авторе через админку получаю ошибку
Attempted access to '\tmp\Picture.jpg' denied
Картинку D:\Picture.jpg я выбираю в качестве значения для поля Headshot.
Откуда возникает путь \tmp\...? MEDIA_ROOT пробовал задавать, ничего не меняется
Вопросы на форуме задавайте, ато будут портянки комментариев с обсуждением ошибок каждого.