you tag register forget expected examples endblock did bootstrap python css django django-admin

python - tag - django templates examples



Falta la página de administración de Django en CSS (17)

Vi esta question y recomendación de Django Projects here pero todavía no puedo hacer que esto funcione. Mis páginas de administrador de Django no muestran el CSS en absoluto.

Esta es mi configuración actual.

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>

Además, también ejecuté lo siguiente para crear (creo) el enlace simbólico ln -s /home/djangotest/sgel/media/admin/ /usr/lib/python2.6/site-packages/django/contrib/admin/media/

ACTUALIZAR

En mi archivo httpd.conf,

User django Group django

Cuando ejecuto ls -l en mi directorio /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

¿Debería ese usuario root ser django en su lugar?

ACTUALIZACIÓN 2 Cuando ingreso ls -la en mi carpeta /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/

La cuestión es que cuando navego a /usr/lib/python2.6/site-packages/django/contrib/admin/media/ , la carpeta estaba vacía. Así que copié las carpetas CSS, IMG y JS de mi instalación de Django en /usr/lib/python2.6/site-packages/django/contrib/admin/media/ y todavía no funcionó


¿Intentaste establecer el valor para

MEDIA_ROOT MEDIA_URL ADMIN_MEDIA_PREFIX

¿correctamente?

Quiero decir que la url MEDIA_ROOT y ADMIN_MEDIA_PREFX deberían tener un valor diferente. Por favor verifique estos valores en su configuración.py e intente nuevamente.

Espero que esto ayude.


Además de corregir el enlace simbólico como sugirió Daniel Roseman, deberá asegurarse de que el usuario que está ejecutando Apache tenga acceso de lectura a los medios de administración.

  • Si hace ls -l en su directorio de medios, ¿ve el enlace simbólico?
  • Si cd admin desde su directorio de medios, ¿funciona? Si luego ejecuta ls puede ver los medios de administración?
  • ¿El usuario que ejecuta Apache tiene acceso de lectura al medio de administración?

Si todas esas cosas funcionan, entonces actualice su pregunta con su configuración actual y los resultados de esos comandos y lo veremos de nuevo.

Respuesta a la actualización : Ok, los permisos se ven bien. Parece que tienes la estructura de directorios en tu directorio de medios un poco mal.

El hecho de que /usr/lib/python2.6/site-packages/django/contrib/admin/media/ estuviera vacío también es preocupante. Una vez que resuelva el problema inmediato, es posible que desee volver a instalar django en el lugar esperado.

De todos modos, así es como debe verse la estructura:

$ 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

Es decir, dentro del directorio media/ , debe haber un enlace llamado admin directamente al directorio /admin/media de su instalación de django.

Para arreglar lo que tienes, dentro del directorio media/admin/ ejecuta:

rm media cd .. rmdir admin

y luego vuelva a crear el enlace simbólico como se sugiere en la respuesta de Daniel Roseman.


Aquí hay un par de problemas, ambos relacionados con su enlace simbólico.

En primer lugar, la fuente y el objetivo tenían que ser al revés (yo siempre me equivoco).

En segundo lugar, ha utilizado una ruta completamente diferente a la que ha especificado en su djangotest/sgelections Apache - djangotest/sgelections vs django/sgel .

Hazlo asi:

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


En Firebug, use la pestaña Red y vea las solicitudes que realiza su navegador para los archivos css. Vea la respuesta a sus solicitudes allí mismo. Creo que encontrarás el problema allí.
Recientemente tuve el mismo problema. El problema fue cuando mi navegador solicita los archivos css, la respuesta contenía el contenido de la página html de inicio de sesión de mi proyecto. No recuerdo ahora como resolví mi problema. Intentaré recordar y publicar la solución aquí.
Déjame saber si tienes el mismo problema.


Encontré el mismo problema mientras ejecutaba el Bitnami Django Stack en Win32 (servidor de desarrollo integrado)

Resolví el problema encontrando las carpetas CSS faltantes en la instalación y cambiando settings.py.

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

Esto te ayudará a comenzar a desarrollar ... No es óptimo. No olvides la coma final :)


Entonces, lo primero que desea hacer es cambiar el directorio a su carpeta estática y agregar un enlace simbólico.

Hice esto con un entorno virtual, así que uso

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

El siguiente paso es editar tu httpd.conf

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

Reinicie su servidor apache y listo!


La solución fácil es cambiar una línea en su archivo wsgi.py

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

se convierte en

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

La forma más fácil de hacer que el Admin CSS se muestre correctamente. Aclamaciones


No estoy seguro de si esto ayudará, pero en mi archivo de configuración tengo:

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>

Funciona, pero tengo mi servidor configurado solo para desarrollo / prueba.


Otro método que acabo de encontrar, y parece un método adecuadamente soportado.

Asegúrate de tener el módulo staticfiles en tu configuración. También configure la opción STATIC_ROOT.

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

Cree su carpeta / static / / y establezca permisos.

Configurar apache con un / static / alias.

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

entonces desde su carpeta de proyecto ejecute

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

Todo lo que parece que hace es copiar los archivos estáticos del administrador en la carpeta de proyectos para el servicio web.


Sé que se resolvió, pero creo que vale la pena compartir mi solución.

Simplemente agregué el alias en apache y funcionó hasta ahora.

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/


Si está utilizando virtualenvwrapper como yo, esta es la forma en que puede encontrar sus archivos de medios de administración y corregirlos:

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

Reemplace <project_name> a su nombre de entorno virtualenvwrapper y project_dir a su directorio de trabajo. :)


Si nada ayuda, agrega lo siguiente a 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/>

Esto es independiente de apache o nginx.


Solía ​​tener el mismo problema, lo resolví utilizando el plugin Fireebox firebug, que le indica dónde está su sitio buscando los archivos de medios, y también cómo verificó el contenido de la carpeta admin / media para ver si estaban vacíos. ?


Tratar de agregar

Options FollowSymLinks

para usted

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

para que termines con

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


Tuve el mismo problema pero nada de esto ayudó realmente. Resultó que mi versión de grappelli estaba desactualizada. ( https://github.com/sehmaschine/django-grappelli ) Lo desinstalé y luego lo reinstalé con una versión más nueva. pip install django-grappelli==2.4.4 Si estás usando un skin de administrador como yo, puedes considerar actualizarlo.


cuando hablamos de django, deberíamos saber en qué edición ejecutamos. "ADMIN_MEDIA_PREFIX" se usa en django antes de la edición de 1.4, vea

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/ . Estoy usando django 1.4, y todavía estoy confundido acerca de esto.


puedes correr

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

la otra pregunta: ¿sus medios normales se colocan en / home / django / sgel / media / work (es decir, que Apache sirve como se espera?)