gpt4 book ai didi

django-tinymce 不显示格式化工具栏

转载 作者:行者123 更新时间:2023-12-01 19:14:17 25 4
gpt4 key购买 nike

TL;DR - Tinymce 的格式化工具栏不显示。 django 生成的 html 中的一行似乎很可疑,但我不确定为什么它在这个位置。这是 python 3.4 和 django 1.8。

我已经这样做了:

设置.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。到目前为止,结果是相同的。)

表单.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 -->

第 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 对其进行了封装。有人知道这样做的好处是什么(除了本地调试之外)?

最佳答案

我和你有同样的问题和相同的配置,你应该在浏览器控制台中阅读。

我得到:

Uncaught TypeError: $ is not a function
(anonymous function) @ init_tinymce.js:18
(anonymous function) @ init_tinymce.js:38

https://github.com/aljosa/django-tinymce/tree/master/tinymce/static/django_tinymce专为 1.4-1.7 打造

编辑:

我找到了解决问题的方法,请尝试看看它是否适合您,编辑文件 init_tinymce.js

# at the begging of the file
-(function ($) {
+$(document).ready(function() {

# at the end
-}(django.jQuery));
+});

此外,您还必须在 setting.py 中注释 TINYMCE_COMPRESSOR = True 或将其配置为 False。

如果启用TINYMCE_COMPRESSOR,将会抛出其他js错误。

关于django-tinymce 不显示格式化工具栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29726848/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com