Django 和 TinyMCE:NameError:名称“url”未定义

问题描述 投票:0回答:3

我正在尝试让 TinyMCE 在 Django 中工作。这是我所做的:

  • 使用此包作为参考:django-tinymce4-lite
  • 成功运行
    pip install django-tinymce4-lite
    ;软件包安装正常
  • 在settings.py中的INSTALLED_APPS中添加了tinymce

然后这里就变得棘手了:

Add tinymce.urls to urls.py for your project:

urlpatterns = [
    ...
    url(r'^tinymce/', include('tinymce.urls')),
    ...
]

当我这样做时,我收到此错误:

url(r'^tinymce/', include('tinymce.urls')),  
NameError: name 'url' is not defined

我尝试过以下方法:

  • 重启django
  • 我没有将其放在我的项目的 urls.py 中,而是尝试了我的应用程序的 urls.py
  • 我尝试将其转换为“path('tinymce/', include('tinymce.urls')),”,因为所有其他条目都使用“path”而不是“url”,但这也不起作用(ModuleNotFoundError:没有名为“tinymce.urls”的模块)
  • 我尝试过另一个tinymce插件

这些都没有帮助。有什么建议么?

更新

根据建议,我将 url 更新为路径。现在我有一个新错误:

ModuleNotFoundError: No module named 'tinymce.urls'

这是我的 urls.py:

from django.urls import include, path
from django.contrib import admin

from django.conf import settings
from django.conf.urls.static import static

urlpatterns = [
    path('', include('core.urls')),
    path('tinymce/', include('tinymce.urls')),
]

if settings.DEBUG:
    urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

这个错误让我怀疑我是否正确安装了插件。但我似乎有:

pip install django-tinymce4-lite
Requirement already satisfied: django-tinymce4-lite in /usr/local/lib/python3.6/site-packages
Requirement already satisfied: Django>=1.8.0 in /usr/local/lib/python3.6/site-packages (from django-tinymce4-lite)
Requirement already satisfied: jsmin in /usr/local/lib/python3.6/site-packages (from django-tinymce4-lite)
Requirement already satisfied: pytz in /usr/local/lib/python3.6/site-packages (from Django>=1.8.0->django-tinymce4-lite)
python django tinymce
3个回答
1
投票

由于您使用的是 django 2.0,因此您应该使用

path
而不是
url
:

from django.urls import path

urlpatterns = [
    ...
    path('tinymce/', include('tinymce.urls')),
    ...
]

您可以在此处找到更多详细信息。


0
投票

是因为他使用的是 django 2 根据文档你可以使用 path 和 re_path 示例:

from django.urls import path , re_path

urlpatterns = [
     path('tinymce/', include('tinymce.urls')),

    # or
    #path('tinymce/', include('tinymce.urls')),

]

0
投票

Django==5.0.3 时错误继续; Python 3.11; django-tinymce4-lite==1.8.0。错误消息向我们显示原因位于 /root/env/lib/python3.11/site-packages/tinymce/urls.py 的第 1 行。

我按照建议更改了tinymce/urls 这个Stackoverflow提供了解决方案。例如,一个快速解决方案是:

### changed april 2024 to handle
###   ImportError: cannot import name 'url' from 'django.conf.urls'
#from django.conf.urls import url
from django.urls import re_path as url

这不是一个好的长期解决方案。我打算提交tinymcs看看是否需要更新或者看看他们是否有更好的解决方案。

© www.soinside.com 2019 - 2024. All rights reserved.