TL;DR -Tinymce的格式工具栏没有显示。有一行django生成的html似乎令人怀疑,但我不知道为什么它在哪里。这是python3.4和django 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)models.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>我认为,这是我需要做的事情。但是textfield看起来就像一个textfield。
有一件相当奇怪的事情(也是主要的怀疑)是,我看到这个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 -->第3行中的/static/{% media %}/显然是错误的,尽管我不知道它是从哪里来的。我找到的最接近的来源是tinymce/settings.py,它不是逐字相同的(没有'min')。
Fwiw,如果我配置的不正确,我现在有以下值:
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 )建议从CDN中获取tinymce。Django-tinymce包装它。有谁知道这样做的好处(除了本地调试之外)?
发布于 2015-04-20 20:28:36
我有同样的问题,同样的配置,您应该在浏览器控制台中阅读。
我得到:
Uncaught TypeError: $ is not a function
(anonymous function) @ init_tinymce.js:18
(anonymous function) @ init_tinymce.js:38tinymce是为1.41.7制作的
编辑:
我找到了解决我的问题的方法,试着看看它是否适合你,编辑文件init_tinymce.js
# at the begging of the file
-(function ($) {
+$(document).ready(function() {
# at the end
-}(django.jQuery));
+});此外,您还必须注释TINYMCE_COMPRESSOR = True,或者在setting.py中将其配置为False。
如果启用,TINYMCE_COMPRESSOR将抛出其他js错误。
https://stackoverflow.com/questions/29726848
复制相似问题