问题陈述 :

我想为edx-platform开发一个自定义的“XBlock”,它允许课程创建者上传图像,将文本描述与每个图像相关联,这些图像将在课程内容中显示为Slider .

我有一个基本的滑块使用一些静态图像,但是我在使用Xblock上传图像时遇到了一些问题 . 基本上我认为有两种方法可以实现这个功能 .

  • 使用edx的默认API上传图像资源,然后在xblock内容中重新查找其相对路径 . 但是,我不确定我应该怎么做..从cms的url.py发送下面url的请求:

url(r'^ assets / {} / {}?$'.format(settings.COURSE_KEY_PATTERN,settings.ASSET_KEY_PATTERN),'assets_handler'),

  • 从其他一些sources on the internet,我想可能是我应该为我的xblock创建一个自定义上传处理程序,它将文件上传到服务器 .

我尝试使用方法:2创建一个处理程序,但是一旦我使用Ajax multipart / form-data上传我的图像,我就遇到了以下错误 .

Traceback (most recent call last):
  File "/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 132, in get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/django/utils/decorators.py", line 145, in inner
    return func(*args, **kwargs)
  File "/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/django/utils/decorators.py", line 145, in inner
    return func(*args, **kwargs)
  File "/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/django/contrib/auth/decorators.py", line 22, in _wrapped_view
    return view_func(request, *args, **kwargs)
  File "/edx/app/edxapp/edx-platform/cms/djangoapps/contentstore/views/component.py", line 359, in component_handler
    return webob_to_django_response(resp)
  File "/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/xblock/django/request.py", line 14, in webob_to_django_response
    webob_response.app_iter,
AttributeError: 'dict' object has no attribute 'app_iter'

关于如何处理这个问题的任何提示都会有很大帮助 . 提前致谢 .