Django ckeditor无法添加youtube插件

时间:2019-07-11 17:39:30

标签: python django plugins youtube ckeditor

我已经看过本教程https://samulinatri.com/blog/django-ckeditor-codesnippet-hightlightjs-youtube/,并在https://ckeditor.com/cke4/addon/youtube此处下载了youtube插件

然后我创建了youtube文件夹并将其推入其中。特别是my_project / static / ckeditor / ckeditor / plugins / youtube /

在我运行好python manage.py runserver之后,字段['content']显示正常,字段['content1']不起作用(不显示框架文本区域)。

有人帮我检查,我做错了。谢谢!!!

文件model.py

class Posts(models.Model):
    title = models.CharField(max_length=50)
    content = RichTextUploadingField(extra_plugins=['codesnippet'],)
    content1 = RichTextUploadingField(
        config_name='special',
        extra_plugins=['youtube'],
        external_plugin_resources=[(
            'youtube',
            '/static/ckeditor/ckeditor/plugins/youtube/youtube/',
            'plugin.js',
        )],
    )

文件setting.py

INSTALLED_APPS = [
    'suit',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'django.contrib.sites',

    'ckeditor',
    'ckeditor_uploader',
]

CKEDITOR_UPLOAD_PATH = "uploads/"

CKEDITOR_CONFIGS = {
    'default': {
        'toolbar': 'full',
     },

    'special': {
        'toolbar': 'Special',
        'toolbar_Special': [
            ['Bold'], ['CodeSnippet', 'Youtube'],
        ],
        'extraPlugins': ','.join(['codesnippet', 'youtube']),
    }
}

文件urls.py

urlpatterns = [
    path('admin/', admin.site.urls),
    path('account/', include(('accounts.urls', 'accounts'), namespace='accounts')),
    path('blog/', include(('blog.urls', 'blog'), namespace='blog')),
    path('ckeditor/', include('ckeditor_uploader.urls')),
]
if settings.DEBUG:
    import debug_toolbar

    debug_patterns = [
        re_path(r'^__debug__/', include(debug_toolbar.urls)),
    ]
    urlpatterns = debug_patterns + urlpatterns + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

My_project

├── blog                          <= This my_app
│   ├── view.py             
│   ├── form.py
│   ├── model.py
├── project                          <= Project settings directory
│   ├── __init__.py
│   ├── settings.py          <= settings 
│   ├── urls.py
│   └── wsgi.py 
├── static                         
│   ├── ckeditor           
│       ├── ckeditor_uploader
│       ├── ckeditor        
│           ├── plugins
│               └── youtube   
│                   └── youtube  
│                        └── images
│                        └── lang 
│                        └── plugin.js
│                        └── ....
│                   └── ...  
│                └── ...

1 个答案:

答案 0 :(得分:0)

在您的models.py文件中,您需要指向plugin.js所在的目录。

我相信您应该参考的目录是这样的:

class Posts(models.Model):
    title = models.CharField(max_length=50)
    content = RichTextUploadingField(extra_plugins=['codesnippet'],)
    content1 = RichTextUploadingField(
        config_name='special',
        extra_plugins=['youtube'],
        external_plugin_resources=[(
            'youtube',
            '/static/ckeditor/ckeditor/plugins/youtube/',
            'plugin.js',
        )],
    )