TL;DR — панель инструментов форматирования Tinymce не отображается. Одна строка сгенерированного django html кажется подозрительной, но я не уверен, почему она там, где она есть. Это питон 3.4 и джанго 1.8.
Я сделал это:
settings.py
Я использую значения по умолчанию django-tinymce.
INSTALLED_APPS = (
...,
'django.contrib.staticfiles',
...,
'tinymce',
...
)
urls.py
...
url(r'^tinymce/', include('tinymce.urls'))
...
if settings.DEBUG:
urlpatterns += patterns('django.views.static',
(r'^media/(?P<path>.*)',
'serve',
{'document_root': settings.MEDIA_ROOT}),)
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
модели.py
from tinymce.models import HTMLField
class BlogEntry(models.Model):
...
#article_body = HTMLField()
article_body = models.TextField()
(Документы предлагают HTMLField. Другие источники предлагают TextField. Пока результаты такие же.)
form.py
from tinymce.widgets import TinyMCE
class BlogEntryForm(forms.ModelForm)
article_body = forms.CharField(
widget=TinyMCE(#mce_attrs={
#'plugin_preview_pageurl': reverse('tinymce-preview', "blog")},
attrs={
'cols': 80, 'rows': 30,
'placeholder': 'contenu',
'class': 'lkz-input'}),)
шаблон
{% extends "kernel/base.html" %}
{% block extra_head %}
<!-- before media -->
{{ entry.media }}
<!-- after media -->
<script type="text/javascript" src="{% url "tinymce-js" "tinymce" %}"></script>
<!-- end -->
{% endblock extra_head %}
{% block content %}
<form method="post" action="">
{% csrf_token %}
...
{{ entry.article_body.errors }}
<label for="{{ entry.article_body.id_for_label }}" ></label> {{ entry.article_body }}<br>
...
</form>
что, я думаю, является набором вещей, которые мне нужно было сделать. Но текстовое поле просто выглядит как текстовое поле.
Одна довольно странная вещь (и главная подозрение) заключается в том, что я вижу, что этот HTML обслуживается:
<!-- before media -->
<script type="text/javascript" src="/static/tiny_mce/tiny_mce.js"></script>
<script type="text/javascript" src="/static/django_tinymce/init_tinymce.js"></script>
<script type="text/javascript" src="/static/{% media %}/tiny_mce/tinymce.min.js"></script>
<!-- after media -->
<script type="text/javascript" src="/tinymce/js/textareas/tinymce/"></script>
<!-- end -->
/static/{% media %}/
в строке 3 явно неверен, хотя я не понимаю, откуда он взялся. Ближайший бит источника, который я нашел, - это tinymce/settings.py
, который не идентичен дословно (не имеет «мин»).
Между прочим, на случай, если я настроил это неправильно, сейчас у меня есть следующие значения:
STATIC_PATH = os.path.join(BASE_DIR,'static')
STATIC_ROOT = ''
STATIC_URL = '/static/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'
побочный вопрос
Документы tinymce (не django-tinymce) предлагают получать tinymce из CDN. Django-tinymce упаковывает его. Кто-нибудь знает, в чем может быть преимущество (кроме локальной отладки)?