Как включить стили CSS в Django Admin? - PullRequest
1 голос
/ 22 июля 2011

Я установил:

ADMIN_MEDIA_PREFIX = 'C:/Python27/Lib/site-packages/django/contrib/admin/media/'

А в админке у меня есть такие ссылки на CSS:

<link href="C:/Python27/Lib/site-packages/django/contrib/admin/media/css/base.css" type="text/css" rel="stylesheet">
<link href="C:/Python27/Lib/site-packages/django/contrib/admin/media/css/dashboard.css" type="text/css" rel="stylesheet">

Я смотрю эти файлы - они не пусты. Я пытался установить статические ссылки на него в шаблонах, но все равно ничего.

Ответы [ 2 ]

3 голосов
/ 22 июля 2011

ADMIN_MEDIA_PREFIX - это префикс URL , а не путь к файловой системе. Вам нужно просто указать путь к вашему домену или локальному хосту, т.е.

ADMIN_MEDIA_PREFIX = '/media/'

Будет извлекать носители из 'http://localhost:8000/media/' или' https://mydomain.com/media/'.

1 голос
/ 31 июля 2011

Проблема может быть в регистре (нелатинские символы), поэтому, если у вас нет стилей в Django Admin - у вас может быть такая ошибка, которая вызывает это.

Traceback (most recent call last):
File "C:\Python27\lib\site-packages\django\core\servers\basehttp.py", line 283, in run
self.result = application(self.environ, self.start_response)
File "C:\Python27\lib\site-packages\django\contrib\staticfiles\handlers.py", line 69, in __call__
return super(StaticFilesHandler, self).__call__(environ, start_response)
File "C:\Python27\lib\site-packages\django\core\handlers\wsgi.py", line 273, in __call__
response = self.get_response(request)
File "C:\Python27\lib\site-packages\django\contrib\staticfiles\handlers.py", line 59, in get_response
return self.serve(request)
File "C:\Python27\lib\site-packages\django\contrib\staticfiles\handlers.py", line 52, in serve
return serve(request, self.file_path(request.path), insecure=True)
File "C:\Python27\lib\site-packages\django\contrib\staticfiles\views.py", line 39, in serve
return static.serve(request, path, document_root=document_root, **kwargs)
File "C:\Python27\lib\site-packages\django\views\static.py", line 54, in serve
mimetype, encoding = mimetypes.guess_type(fullpath)
File "C:\Python27\lib\mimetypes.py", line 294, in guess_type
init()
File "C:\Python27\lib\mimetypes.py", line 355, in init
db.read_windows_registry()
File "C:\Python27\lib\mimetypes.py", line 260, in read_windows_registry
for ctype in enum_types(mimedb):
File "C:\Python27\lib\mimetypes.py", line 250, in enum_types
ctype = ctype.encode(default_encoding) # omit in 3.x!
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe0 in position 0: ordinal not in range(128)

<ч /> Если у вас нет стилей в администрировании Django, вы должны смотреть информацию, указанную в теге, на вашей html-странице без стилей. Может быть, это проблема с таким окончанием.

Есть простое решение. Запустите regedit и посмотрите в XP:

[HKEY_CLASSES_ROOT\CLSID\{4063BE15-3B08-470D-A0D5-B37161CFFD69}\EnableFullPage\MIME]

и в 7 таких ключах:

HKEY_CLASSES_ROOT\MIME\Database\Content Type 

Там должны быть недопустимые символы (все должны быть на английском языке), поэтому вам нужно переименовать некоторые записи, и все будет работать нормально. Но, на самом деле, требуется очень много времени, чтобы соединить проблемы конечного кода и стиля вместе. Надеюсь, это сэкономит ваше время.

...