You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django集成TinyMCE遇报错:NameError与ModuleNotFoundError求助

我来帮你搞定这个Django集成TinyMCE的路由问题,看起来你踩了两个常见的小坑,咱们一步步来解决:

1. 先解决NameError: name 'url' is not defined的问题

在Django 3.1及以后的版本里,旧的url()函数已经被弃用了。如果你想用正则表达式风格的路由,得改用re_path(),而且要记得从django.urls导入它。当然更推荐用简洁的path()语法,先把这个错误根源说清楚:

# 项目根urls.py的正则路由写法
from django.urls import include, re_path

urlpatterns = [
    # 你的其他路由配置
    re_path(r'^tinymce/', include('tinymce4.urls')),  # 注意这里的应用名是tinymce4!
]

2. 解决ModuleNotFoundError: No module named 'tinymce.urls'的核心问题

这是最关键的错误——你搞混了插件的应用名称!django-tinymce4-lite对应的应用包名是tinymce4,不是tinymce。官方包的路由模块是tinymce4.urls,所以你之前写的tinymce.urls肯定找不到模块。正确的path写法应该是:

# 项目根urls.py的path写法(推荐)
from django.urls import include, path

urlpatterns = [
    # 你的其他路由配置
    path('tinymce/', include('tinymce4.urls')),
]

3. 额外的必查配置项

别漏了这些细节,不然还是会出问题:

  • 确认settings.py的INSTALLED_APPS里加的是'tinymce4',不是'tinymce':
    INSTALLED_APPS = [
        # 其他已安装应用
        'tinymce4',
    ]
    
  • 重新安装插件确保包没有损坏:
    pip uninstall django-tinymce4-lite
    pip install django-tinymce4-lite
    
  • 清理Django缓存并重启服务:
    python manage.py clearcache
    python manage.py runserver
    

4. 备选方案:跳过插件直接用CDN集成

如果插件路由的问题始终绕不开,你可以直接在模板里引入TinyMCE的CDN资源,这种方式更灵活,也不用折腾Django路由:

<!-- 在你的表单模板头部添加这段代码 -->
<script src="https://cdn.tiny.cloud/1/你的API_KEY/tinymce/6/tinymce.min.js" referrerpolicy="origin"></script>
<script>
  tinymce.init({
    selector: '#你的文本域ID',  # 比如id="content"
    height: 500,
    plugins: 'advlist autolink lists link image charmap print preview anchor',
    toolbar: 'undo redo | formatselect | bold italic backcolor | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | removeformat | help'
  });
</script>

注:你需要去TinyMCE官网免费获取一个API_KEY,或者下载自托管版本的资源文件放到你的静态目录里。

内容的提问来源于stack exchange,提问作者user585936

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 08:56:39