+ Для красоты еще grappelli
Для примера я напишу какие у меня в проекте установлены конфиги:
Устанавливаем с помощью pip приложения
$ pip install django-filebrowser==3.1 django-grappelli==2.3.2
В settings.py: (В Apocalepse комментирует... в INSTALLED_APPS перечилить приложения в порядке: filebrowser и grappelli должны идти до contrib.admin)
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
'filebrowser',
'grappelli',
'django.contrib.admin',
'wpages',
'users',
)
...
STATIC_ROOT = STATICFILES_ROOT = at_project_root('static')
STATIC_URL = STATICFILES_URL = '/static/'
ADMIN_MEDIA_PREFIX = STATIC_URL + "grappelli/"
Здесь at_project_root('static') - папка static относительно корневой папки проекта django.
В файле admin.py приложения проекта:
class MyAdmin(admin.ModelAdmin):
...
class Media:
...
js = [
'/static/grappelli/tinymce/jscripts/tiny_mce/tiny_mce.js',
'/static/grappelli/tinymce_setup/tinymce_setup.js',
]
Apocalepse: В urls.py:
urlpatterns = patterns(
...
(r'^grappelli/', include('grappelli.urls')),
(r'^filebrowser/', include('filebrowser.urls'))
)
Все. Теперь осталось только запустить команду
$ python manage.py collectstatic
Заходим в админку и видим примерно следующую картину:
tinymce в admin django |
django filebrowser |
Выбор файла в django filebrowser |
Update:
Как установить tinymce в данной связке?
Для установки tinymce в связке django, filebrowser, grappelli достаточно:
1. скачать tinymce c официального сайта http://tinymce.moxiecode.com/download/download.php
2. Положить по пути, например, /static/grappelli/tinymce/jscripts/tiny_mce/tiny_mce.js
3. Указать путь /static/grappelli/tinymce/jscripts/tiny_mce/tiny_mce.js в MyAdmin.Media.js, как указанно здесь
Спасибо! Познавательно, сам пользовался только TinyMCE
ОтветитьУдалитьВот эта часть не понятна
ОтветитьУдалитьSTATIC_ROOT = STATICFILES_ROOT = at_project_root('static')
STATIC_URL = STATICFILES_URL = '/static/'
ADMIN_MEDIA_PREFIX = STATIC_URL + "grappelli/"
Что за переменная STATICFILES_URL?
STATICFILES_URL появилась в версии django 1.3 - посмотрите здесь https://docs.djangoproject.com/en/dev/ref/contrib/staticfiles/#staticfiles-dirs
ОтветитьУдалить- url для собранных статических файлов.
Хотя нету там именно ..._URL - можно найти через поиск, что это такое https://docs.djangoproject.com/search/?q=STATICFILES_URL&release=1
ОтветитьУдалитьНеудобно за такой вопрос, но, процедура сбора статики была и до 1.3? А то я ни разу ей не пользовался и как следствие смутно понимаю как это работает.
ОтветитьУдалитьНе, в 1.2 ее и ниже не было.
ОтветитьУдалитьstaticcollect собирает статические файлы в одно место для того, чтобы не указывать
много разных статических url в nginx например, а указать один /static/ и больше не волноваться. Например так
location /static {
alias /srv/myproject/myproject/static;
expires max;
gzip on;
}
Иван, спасибо за ответы! Я тут уже потерял надежду настроить это все) Со статикой я все понял, настроил. (grapelli 2.3.2), админка изменилась, но судя по исходинкам он втыкает файл dashboard.css а его нету. Причем его нету даже в дистрибутиве!
ОтветитьУдалитьПардон! Короче такие проблемы могут быть если в INSTALLED_APPS перечилить приложения в неверном порядке. filebrowser и grappelli должны идти до contrib.admin
ОтветитьУдалитьДа. Надо упомянуть это:)
ОтветитьУдалитьВ целом, еще не помешает упомянуть о том, что для установки grappelli нужно добавить в urls.py строку (r'^grappelli/', include('grappelli.urls')) а для filebrowser: (r'^admin/filebrowser/', include('filebrowser.urls')).
ОтветитьУдалитьА еще я сделал файл локализации для filebrowser :) могу скинуть )
Спасибо! Оставил.
ОтветитьУдалитьПростите, но я что-то не понял, а как прикрутить tiny_mce?
ОтветитьУдалитьStyopchik, Достаточно выполнить, как я написал в update для статьи http://satels.blogspot.com/2011/04/tinymce-filebrowser-django-13-grappelli.html#how-tinymce-in-django-admin
ОтветитьУдалитьGrapelli подключился, но в текстареях в админке редактор не появился... Файл tiny_mce.js подключается, в чем может быть дело?
ОтветитьУдалитьmaxmoriss, Вы можете открыть исходный код страницы и сказать - есть тег, содержащий ссылку на tiny_mce.js ?
ОтветитьУдалитьДа, он подключается! Помнится раньше нужно было ставить еще django-tinymce, теперь этого делать не нужно?
ОтветитьУдалитьДа, сейчас не нужно подключать django-tinymce
ОтветитьУдалитьА что за файл tinymce_setup.js, у меня в папке с tiny_mce его нет...
ОтветитьУдалитьЕго нужно скачивать отдельно с официального сайта tinymce
ОтветитьУдалитьХотя не, ошибаюсь, вы запустили collectstatic ?
ОтветитьУдалитьЗапустил.
ОтветитьУдалитьА как Django узнает что ей в textarea нужно подключить TinyMCE ?
Из примера
ОтветитьУдалитьMyAdmin.Media.js - путь до файликов там содержаться - они и говорят, что к модели для админки нужно подключить tinymce. Там по-моему по-умолчанию должно быть установлено подключение tinymce к textarea
>>> import django
ОтветитьУдалить>>> django.VERSION
(1, 3, 0, 'final', 0)
>>>
jump@JustDoIt:~/django/fengshui$ python manage.py collectstatic
Unknown command: 'collectstatic'
И что мне делать, если нету такой команды?
Не могу настроить не как grappelli..
Руслан, попробуйте в settings.py в INSTALLED_APPS импортнуть django.contrib.staticfiles ?
ОтветитьУдалитьЭтот комментарий был удален автором.
ОтветитьУдалитьПочему не выбирает картинки, через кнопку(ссылку)?
ОтветитьУдалитьвот эти кнопки скрин
загрузка работает файлов работает, а вот вставить в редактор не получается
Разобрался, в путях проблемы были.
ОтветитьУдалитьНе подключается tinymce в исходном коде страницы ссылок на tinymce_setup.js нет, однако по пути
ОтветитьУдалитьstatic/grappelli/tinymce_setup/tinymce_setup.js доступен.... в чём проблема может быть?
откуда вознилка такая проблема
ОтветитьУдалитьNo module named Image
C:\Program Files\BitNami DjangoStack\python\lib\site-packages\django_filebrowser-3.5.0-py2.7.egg\filebrowser\functions.py in , line 23
После collectstatic админка тупо не видит медиа файлы
ОтветитьУдалить