Добавление своих моделей в административный интерфейс

Опубликовал: Wednesday, January 25, 2024 в категории Django | Пока нет комментариев

Одну важную вещь мы еще не сделали. Давайте включим свои собственные модели в административный интерфейс, чтобы для добавления, изменения и удаления объектов, хранящихся в наших таблицах, можно было воспользоваться средствами, так удобно реализованными в нем. Мы снова будем работать с проектом books из главы 5 и тремя определенными в нем моделями: Publisher, Author и Book.

В каталоге проекта books (mysite/books) создайте файл admin.ру и добавьте в него такие строки:

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. (Чтобы изменения вступили в силу, возможно, понадобится остановить и снова запустить сервер разработки.)

Теперь у вас есть полнофункциональный административный интерфейс для всех трех моделей. Безо всяких проблем!

Поэкспериментируйте с добавлением и изменением записей, а заодно наполните базу тестовыми данными. Если вы выполняли приведенные в главе 5 упражнения по созданию объектов Publisher (и потом не удалили их), то должны увидеть эти записи на странице списка издательств.

Здесь стоит упомянуть о том, как в административном интерфейсе обрабатываются внешние ключи и отношения многие-ко-многим; те и другие встречаются в модели 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

На странице Add Book (,http://127.0.0.1:8000/admin/books/book/add/) поле publisher (типа ForeignKey) представлено раскрывающимся списком, а поле authors (типа ManyToManyField) - списком с возможностью множественного выбора. Рядом с обоими полями находится зеленый плюсик, который позволяет добавлять связанные записи соответствующего типа. Например, если щелкнуть на зеленом плюсике рядом с полем Publisher, то появится всплывающее окно для добавления издательства. После того как введенное во всплывающем окне издательство будет успешно добавлено, оно появится в форме Add Book. Удобно.

Источник: Головатый А., Каплан-Мосс Дж. Django. Подробное руководство, 2-е издание. - Пер. с англ. - СПб.: Символ- Плюс, 2010. - 560 е., ил.

Похожие посты:

Комментировать

Your email address will not be published. Required fields are marked *