Интерфейс администратора Django совсем не обязателен, потому что только определённые типы сайтов требуют наличия данной функциональности. Поэтому вы должны выполнить несколько шагов для активации интерфейса для вашего проекта.
Сначала внесите изменения в файле настроек:
Добавим django.contrib.admin в параметр
INSTALLED_APPS
. (Порядок элементов вINSTALLED_APPS
не имеет значения, но мы советуем содержать их в алфавитном порядке, для удобства чтения.)Убедитесь, что
INSTALLED_APPS
содержит django.contrib.auth, django.contrib.sessions и django.contrib.contenttypes. Интерфейс администратора требует подключения этих трёх пакетов. (Если вы следуете нашим инструкциям относительно проекта mysite, вспомните, что мы закомментировали эти три пакета в главе «Модели». Раскомментируйте их сейчас.)Убедитесь, что
MIDDLEWARE_CLASSES
содержит django.middleware.common.CommonMiddleware и django.contrib.sessions.middleware.SessionMiddleware а также django.contrib.auth.middleware.AuthenticationMiddleware. (И снова вам потребуется расскомментировать эти строчки для проекта mysite.)
Теперь выполните команду python manage.py syncdb. Она установит дополнительные таблицы в базу
данных, которые будет использовать интерфейс администратора. При
первом запуске syncdb при наличии
django.contrib.auth в
INSTALLED_APPS
, у вас спросят о необходимости
создания суперпользователя. Если вы его не создадите, то позже
для его создания вам потребуется выполнить python manage.py createsuperuser. В противном случае вы не
сможете войти в интерфейс администратора.
Теперь добавим административную часть в схему URL (в файл
urls.py
, помните?). По умолчанию,
urls.py
созданый с помощью
django-admin.py startproject, содержит
закомментированный код для административного интерфейса Django,
и вам потребуется раскомментировать его. Вот, что там должно
быть:
# Include these import statements...
from django.contrib import admin
admin.autodiscover()
# And include this URLpattern...
urlpatterns = patterns('',
# ...
(r'^admin/', include(admin.site.urls)),
# ...
)
После этих несложных настроек, вы можете увидеть интерфейс администратора в действии. Запустите тестовый сервер (python manage.py runserver, как и в предыдущих главах) и перейдите по ссылке http://127.0.0.1:8000/admin/.
Пред. | Уровень выше | След. |
Глава 6. Интерфейс администратора Django | Начало | Использование интерфейса администратора |
10 comments | Make a comment
python manage.py createsuperuser выдает ошибку:
=======================================
File "c:\Python27\lib\site-packages\django\db\backends\sqlite3\base.py", line
200, in execute
return Database.Cursor.execute(self, query, params) django.db.utils.DatabaseError: You must not use 8-bit bytestrings unless you use
a text_factory that can interpret 8-bit bytestrings (like text_factory = str).
It is highly recommended that you instead just switch your application to Unicode strings.
=====================================
что делать?
в английском слабоват, но кажись проблема в кодировке
У меня одни эмоции были, когда я увидел админку.... Аааа!!!! Это же супермегоминиадминка!!! Спасибо!
Не представляете, что будет когда разберётесь с её возможностями!
При попытке создать администратора вылетают следующие ошибки. Уже все что можно было попробовал, сам найти проблему не могу. С БД вроде проблем нет djanga создает таблицы и добавляет данные.
<img src="http://s54.radikal.ru/i146/1107/54/dda7eb43bd86.jpg">
answer to onokoy.a.v
При попытке создать администратора вылетают следующие ошибки. Уже все что можно было попробовал, сам найти проблему не могу. С БД вроде проблем нет djanga создает таблицы и добавляет данные.
<img src="http://s54.radikal.ru/i146/1107/54/dda7eb43bd86.jpg">
Воспользоваться поиском на форуме. Слово "createsuperuser".
answer to onokoy.a.v
При попытке создать администратора вылетают следующие ошибки. Уже все что можно было попробовал, сам найти проблему не могу. С БД вроде проблем нет djanga создает таблицы и добавляет данные.
<img src="http://s54.radikal.ru/i146/1107/54/dda7eb43bd86.jpg">
смотрите кодировку базу. скорее всего при создании бд и таблиц стояло latin
все сделал как по книжке. все запускается все работает вот только ввожу логин и пароль при входе в админку и мне говорят введите правильные логин и пароль. я уже подумал что где-то опечатался и создал второго суперюзера. все равно не получается. помогите пожалуйста. использую базу данных postgresql
все сделал а сервер ругается, говорит name 'admin' is not defined
D:\WORK\pythonsites\bookster\..\bookster\urls.py in <module>, line 17
answer to myfopster
все сделал а сервер ругается, говорит name 'admin' is not defined
D:\WORK\pythonsites\bookster\..\bookster\urls.py in <module>, line 17
в файле urls.py необходимо раскомментировать
from django.contrib import admin
admin.autodiscover()