Django book: добавление моделей в панель управления

Автор: | 03/16/2015
 

django_logo_2Предыдущая часть.

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

В директории приложения 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)

Замените импорт mysite на путь имя вашего проекта, например в данном случае он будет выглядеть так:

from testing_setevoy_org_ua.books.models import Publisher, Author, Book

Этот код указывает Django на необходимость добавить эти модели в панель управления. После того, как вы это сделаете — перейдите в панель управления — вы должны увидеть раздел Books со ссылками на Authors, Books и Publishers:

django_admin_1

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

Потратьте время, и добавьте и измените несколько записей в вашей базе.

Есть ещё один важный нюанс, о котором стоит упомянуть. Панель управления умеет работать с внешними ключами и отношениями «многое к многому», которые используются в нашей модели 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» поле Pusblisher (внешний ключ) представлен списком выбора, а поле авторов (поле ManyToMany) — областью множественного выбора:

django_admin_2

В обоих полях значок зелёного плюса даёт возможность добавить соответствующую запись. Например, если вы нажмёте на плюс возле поля «Publisher» — у вас появится всплывающее окно, в котором можно добавить нового издателя. После его добавления — форма «Add book» будет обновлена с новым издателем:

django_admin_3

Продолжение — Django Book: как работает панель управления.