Ошибка администратора Django

Я видел этот вопрос и рекомендации от Django Projects здесь, но до сих пор не могу заставить это работать. Мои страницы администратора Django не отображают CSS вообще.

введите описание изображения здесь

Это моя текущая конфигурация.

settings.py

ADMIN_MEDIA_PREFIX = '/media/admin/' 

httpd.conf

 <VirtualHost *:80> DocumentRoot /home/django/sgel ServerName ec2-***-**-***-***.ap-**********-1.compute.amazonaws.com ErrorLog /home/django/sgel/logs/apache_error.log CustomLog /home/django/sgel/logs/apache_access.log combined WSGIScriptAlias / /home/django/sgel/apache/django.wsgi <Directory /home/django/sgel/media> Order deny,allow Allow from all </Directory> <Directory /home/django/sgel/apache> Order deny,allow Allow from all </Directory> LogLevel warn Alias /media/ /home/django/sgel/media/ </VirtualHost> <VirtualHost *:80> ServerName sgel.com Redirect permanent / http://www.sgel.com/ </VirtualHost> 

Кроме того, я также создал следующее, чтобы создать (я думаю) символическую ссылку ln -s /home/djangotest/sgel/media/admin/ /usr/lib/python2.6/site-packages/django/contrib/admin/media/

ОБНОВИТЬ

В моем файле httpd.conf,

 User django Group django 

Когда я запускаю ls -l в каталоге /media

 drwxr-xr-x 2 root root 4096 Apr 4 11:03 admin -rw-r--r-- 1 root root 9 Apr 8 09:02 test.txt 

Должен ли пользователь root быть django вместо этого?

ОБНОВЛЕНИЕ 2 Когда я вхожу в ls -la в папку /media/admin

 total 12 drwxr-xr-x 2 root root 4096 Apr 13 03:33 . drwxr-xr-x 3 root root 4096 Apr 8 09:02 .. lrwxrwxrwx 1 root root 60 Apr 13 03:33 media -> /usr/lib/python2.6/site-packages/django/contrib/admin/media/ 

Дело в том, что когда я перехожу к /usr/lib/python2.6/site-packages/django/contrib/admin/media/ , папка была пуста. Поэтому я скопировал папки CSS, IMG и JS из моей установки Django в /usr/lib/python2.6/site-packages/django/contrib/admin/media/ и он все еще не работал

  • Сохраните подзаголовок в matplotlib
  • изменить настройки оси matplotlib
  • Чтение из удаленных баз данных sqlite3
  • TensorFlow - индексирование тензоподобных тензоров
  • Начать: прекратить нарезку несоответствий между numpy и Pandas?
  • Установка pyside с python3 на os x
  • Использование Python со сценарием (на Mac)
  • python parse выводит только первую строку из списка
  • 17 Solutions collect form web for “Ошибка администратора Django”

    В дополнение к исправлению символической ссылки, как предложил Даниэль Роземан, вам нужно убедиться, что пользователь, на котором запущен Apache, имеет доступ на чтение к медиа-администратору.

    • Если вы используете ls -l в своем медиа-каталоге, вы видите символическую ссылку?
    • Если вы cd admin из своего медиа-каталога, это работает? Если вы запустите ls вы увидите медиа-интерфейс администратора?
    • У пользователя, который запускает Apache, есть доступ на чтение к медиа-администратору?

    Если все это работает, то, пожалуйста, обновите свой вопрос с помощью вашей текущей конфигурации и результатов этих команд, и мы рассмотрим другой вопрос.

    Ответ на обновление : Хорошо, разрешения выглядят нормально. Похоже, что структура каталогов в вашем медиа-каталоге немного неправильна.

    Тот факт, что /usr/lib/python2.6/site-packages/django/contrib/admin/media/ был пуст, также вызывает беспокойство. Как только вы решите ближайшую проблему, вы можете захотеть переустановить django в ожидаемом месте.

    В любом случае, вот как выглядит структура:

     $ cd media $ ls -la drwxr-xr-x 2 root root 4096 Apr 13 03:33 . drwxr-xr-x 3 root root 4096 Apr 8 09:02 .. lrwxrwxrwx 1 root root 60 Apr 13 03:33 admin -> /usr/lib/python2.6/site-packages/django/contrib/admin/media/ -rw-r--r-- 1 root root 9 Apr 8 09:02 test.txt 

    То есть внутри каталога media/ их должна быть ссылка под названием admin непосредственно в каталог /admin/media вашей установки django.

    Чтобы исправить то, что у вас есть, внутри запуска каталога media/admin/ :

     rm media cd .. rmdir admin 

    а затем повторно создать символическую ссылку, как это было предложено в ответе Даниэля Роуземана.

    Здесь есть пара проблем, как с вашей символической ссылкой.

    Во-первых, источник и цель должны быть в обратном направлении (я всегда сам ошибаюсь).

    Во-вторых, вы использовали совершенно другой путь к тому, который вы указали в своем Apache conf – djangotest/sgelections vs django/sgel .

    Делай это так:

     cd /home/django/sgel/media/ ln -s /usr/lib/python2.6/site-packages/django/contrib/admin/media/ admin 

    Простое решение – изменить строку в файле wsgi.py

      from django.core.wsgi import get_wsgi_application application = get_wsgi_application() 

    становится

      from django.core.wsgi import get_wsgi_application from dj_static import Cling application = Cling(get_wsgi_application()) 

    Самый простой способ правильно настроить CSS-интерфейс. ура

    Другой метод, который я только что нашел, и выглядит как правильно поддерживаемый метод.

    Убедитесь, что в ваших настройках установлен модуль staticfiles. Также настройте опцию STATIC_ROOT.

    https://docs.djangoproject.com/en/dev/ref/contrib/staticfiles/#module-django.contrib.staticfiles

    Создайте свою / статическую / папку и установите разрешения.

    Настройте apache с помощью / static / alias.

     alias /static <path to project root>/static/ <Directory "<path to project root>/static/"> Order deny,allow Allow from all </Directory> 

    затем из папки проекта

     sudo python manage.py collectstatic [-n to do a dry run] 

    Все это выглядит так: это копирование статических файлов admin в папку ваших проектов для веб-сервисов.

    Итак, первое, что вы хотите сделать, это сменить каталог на вашу статическую папку и добавить символическую ссылку.

    Я сделал это с виртуальной средой, поэтому я использую

     ln -s ~/virtualenv/my-virtualenv/lib/python2.x/site-packages/django/contrib/admin/static/admin admin 

    Следующий шаг – отредактировать ваш httpd.conf

    Alias ​​/ static / admin / ~ / mysite / static / admin /

    Перезапустите сервер Apache и вуаля!

    В Firebug используйте вкладку «Сеть» и просмотрите запросы, сделанные вашим браузером для файлов css. см. ответ на ваши запросы там. Я думаю, вы найдете там проблему.
    У меня недавно была такая же проблема. Проблема заключалась в том, что когда мой браузер запрашивал файлы css, в ответе содержалось содержимое страницы html входа моего проекта. Теперь я не помню, как я решил свою проблему. Я попытаюсь вспомнить и опубликовать решение здесь.
    Дайте мне знать, если у вас такая же проблема.

    У меня была такая же проблема, но ничто из этого не помогло. Оказалось, что моя версия граппелли устарела. ( https://github.com/sehmaschine/django-grappelli ) Я удалил его, а затем снова установил с более новой версией. pip install django-grappelli==2.4.4 Если вы используете админ pip install django-grappelli==2.4.4 подобный мне, вы можете его обновить.

    Попробуйте добавить

     Options FollowSymLinks 

    на ваш

     <Directory /home/django/sgel/media> Order deny,allow Allow from all </Directory> 

    так что вы в конечном итоге

     <Directory /home/django/sgel/media> Options FollowSymLinks Order deny,allow Allow from all </Directory> 

    Я не уверен, что это поможет, но в моем файле конфигурации у меня есть:

      Alias /adminmedia/ /var/lib/python-support/python2.6/django/contrib/admin/media/ <Directory "/var/lib/python-support/python2.6/django/contrib/admin/media"> AllowOverride None Options FollowSymLinks Order allow,deny Allow from all </Directory> 

    Он работает, но у меня установлен мой сервер только для разработки / тестирования.

    У меня была такая же проблема, я решил ее с помощью FireFox-плагина FireFox, в котором рассказывается, где находится ваш сайт для поиска медиа-файлов, а также как вы проверили содержимое папки admin / media, чтобы узнать, были ли они пустыми ?

    Я знаю, что это было решено, но я думаю, что достойно поделиться своим решением.

    Я просто добавил псевдоним в apache, и он работал до сих пор.

      Alias /static/admin/ /usr/local/lib/python2.6/dist-packages/django/contrib/admin/media/ Alias admin/media/ /usr/local/lib/python2.6/dist-packages/django/contrib/admin/media/ 

    ты можешь бежать

     python >>> import django >>> print django.__file__ 

    другой вопрос – размещаются ли ваши обычные медиа в / home / django / sgel / media / work (т. е. обслуживаются Apache, как ожидалось?)

    Вы пытались установить значение для

    MEDIA_ROOT MEDIA_URL ADMIN_MEDIA_PREFIX

    правильно?

    Я имею в виду, что URL MEDIA_ROOT и ADMIN_MEDIA_PREFX должны иметь другое значение. Проверьте эти значения в параметрах settings.py и повторите попытку.

    Надеюсь это поможет.

    Я столкнулся с такой же проблемой при запуске Bitnami Django Stack на Win32 (встроенный сервер разработки)

    Я решил проблему, найдя недостающие папки CSS при установке и изменяя settings.py.

     # Additional locations of static files STATICFILES_DIRS = ( 'C:/Program Files/BitNami DjangoStack/apps/django/django/contrib', ) 

    Это поможет вам приступить к разработке … Это не оптимально. Не забывайте конечную запятую 🙂

    когда мы говорили о джанго, мы должны знать, в каком издании мы работаем. «ADMIN_MEDIA_PREFIX» используется в django до версии 1.4, см.

     The included administration app django.contrib.admin has for a long time shipped with a default set of static files such as JavaScript, images and stylesheets. Django 1.3 added a new contrib app django.contrib.staticfiles to handle such files in a generic way and defined conventions for static files included in apps. Starting in Django 1.4, the admin's static files also follow this convention, to make the files easier to deploy. In previous versions of Django, it was also common to define an ADMIN_MEDIA_PREFIX setting to point to the URL where the admin's static files live on a Web server. This setting has now been deprecated and replaced by the more general setting STATIC_URL. Django will now expect to find the admin static files under the URL <STATIC_URL>/admin/. 

    https://docs.djangoproject.com/en/dev/releases/1.4/ . Я использую django 1.4 и все еще запутаюсь.

    Если ничего не помогает, добавьте следующее в urls.py

     url(r'^media/(?P<path>.*)$', 'django.views.static.serve', { <br/> 'document_root': '/usr/lib/python2.4/site-packages/django/contrib/admin/media/', <br/> 'show_indexes' : True, <br/> }), <br/> 

    Это не зависит от apache или nginx

    Если вы используете virtualenvwrapper как я, то вот как вы можете найти свои медиа-файлы администратора и исправить:

     workon <project_name> export DJANGO_BASEFILE=`python -c 'import django; print django.__file__'` export DJANGO_BASEDIR=$(dirname ${DJANGO_BASEFILE}) ln -s $DJANGO_BASEDIR/contrib/admin/media <project_dir>/media/admin 

    Замените <project_name> на ваше имя среды virtualenvwrapper и project_dir в рабочем каталоге. 🙂

    Python - лучший язык программирования в мире.