4

我最近用我的表单实现了django-summernote,它适用于文本。但是,我很难准确了解图像上传的工作原理。有人对它是如何完成的有一些意见吗?

问题

使用 Summernote 从文件中选择图像时,“插入图像”按钮被禁用(适用于图像链接)。我没有编写自定义的“upload_to”函数,但据我所知,这已经在 django-summernote 中完成了。

细节

  1. 根据文档安装 django-summernote。
  2. 在 url 和 INSTALLED_APPS 中添加了 summernote
  3. 在我的表单字段中添加了summernote

    方向=forms.CharField(小部件=SummernoteInplaceWidget(attrs={'maxlength':'4000'}),必需=假,)

  4. 还在 SUMMERNOTE_CONFIG (settings.py) 中添加了一些配置

    SUMMERNOTE_CONFIG = {
        'iframe': True,
    
        'airMode': True,
    
        'width': '100%',
        'height': '300',
    
          'toolbar': [
            # ['style', ['style']],
            ['font', ['bold', 'italic', 'underline', 'superscript', 'subscript', 'strikethrough', 'clear']],
            # ['fontname', ['fontname']],
            ['fontsize', ['fontsize']],
            # ['color', ['color']],
            ['para', ['ul', 'ol', 'paragraph']],
            ['height', ['height']],
            ['table', ['table']],
            ['insert', ['link', 'picture', 'video', 'hr']],
            ['view', ['fullscreen', 'codeview']],
            ['help', ['help']],
          ], }
    

我是否还必须为附件(图像)编写自己的后端?STATIC_URL 和 MEDIA_URL 在我的 settings.py 中定义,如果这对这个问题很重要。

2014 年 11 月 29 日更新:

选择图片时,控制台报如下错误:“undefined is not a function”,与

imageInput.fileupload();

“插入图像”按钮被禁用。

由于我的项目处于开发模式,因此我的设置中有DEBUG=True

我的网址看起来像:

urlpatterns += patterns('',
  url(r'^summernote/', include('django_summernote.urls')),
  ) + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

并且Media_rootMedia_url设置为:

MEDIA_ROOT = path.join(path.dirname(__file__), 'media',)
MEDIA_URL = '/media/'

我使用这些设置在 django-summernote 之外使用图片上传。

感觉好像我错过了什么,但看不到什么。

提前致谢。

4

1 回答 1

0

django-summernote附带对图片上传开箱即用的后端支持。因此,您不必为此编写自己的后端。MEDIA_ROOTMEDIA_URL设置可能有错误的上传值 - 权限问题或无效路径。

运行 django 项目,runserver并在尝试上传图像后检查浏览器控制台(检查)和 python 控制台。

并且还参考需要一个最小的 Django 文件上传示例来处理 django 项目上的文件。

于 2014-11-25T15:44:59.113 回答