Хостинг Django от «Джино»
Table of contents

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

Есть одна важная часть, которую мы ещё не сделали. Давайте добавим наши модели в интерфейс администратора, что бы мы могли добавлять, редактировать и удалять объекты в наших таблицах с помощью этого изящного интерфейса. Продолжим наш пример с книгами из главы «Модели», в которой мы создали три модели: 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) представлен выпадающим списком с множественным выбором. Рядом с этими полями находится иконка зелёного цвета с изображением плюса, которая позволяет добавлять связаные обьекты соответствующего типа. Например, если нажать на иконку возле поля «Издатель», появится дополнительное окно, позволяющее добавить издателя. После того, как вы успешно добавите издателя в этом окне, в форме добавления книги добавится созданый издатель. Красиво.

dmitry 1 month ago
Answer Link

Точнее раскомментировать, такая строка там уже есть

dmitry 1 month ago
Answer Link

В urls.py надо добавить admin.autodiscover() иначе в админке будет написано "нет прав"


Ищем Python программистов

Found misprint?
Select it with the mouse and hit Enter
Ctrl-Enter
Processed:
33 1 199 25


The full repository of DjangoBook translation you can get on GitHub.
We appreciate your patches!

We are glad to hear your questions, comments or suggestions!
(Open in new tab)

Users number: 601

Русская группа

на поддержку перевода
Яндекс Яндекс.Деньги Хочу такую же кнопку
Ускорить процесс перевода!
ЯМ:41001223475816


© 2008-2012 Ruslan Popov @ gmail.com Powered by Django 1.2.5