Django-cms 错误 "不支持的操作数类型: 'set' 和 'tuple

1 投票
1 回答
680 浏览
提问于 2025-04-18 11:25

在Django CMS中,我安装了新的包easy_thumbnailsadminsortablefiler,但是当我想在网站上添加新图片时,出现了错误页面。

TypeError at /en/admin/filer/folder/

unsupported operand type(s) for +: 'set' and 'tuple'

Request Method:     GET
Request URL:    http://127.0.0.1:8000/en/admin/filer/folder/?_popup=1
Django Version:     1.6.5
Exception Type:     TypeError
Exception Value:    

unsupported operand type(s) for +: 'set' and 'tuple'

Exception Location:     /home/tarek/Documents/python/myproject-cms/env/local/lib/python2.7/site-packages/easy_thumbnails/utils.py in valid_processor_options, line 54
Python Executable:  /home/tarek/Documents/python/teknikcloud-cms/env/bin/python
Python Version:     2.7.6
Python Path:    

['/home/tarek/Documents/python/myproject-cms',
 '/home/tarek/Documents/python/myproject-cms/env/src/cms-form-plugin',
 '/home/tarek/Documents/python/myproject-cms/env/lib/python2.7',
 '/home/tarek/Documents/python/myproject-cms/env/lib/python2.7/plat-x86_64-linux-gnu',
 '/home/tarek/Documents/python/myproject-cms/env/lib/python2.7/lib-tk',
 '/home/tarek/Documents/python/myproject-cms/env/lib/python2.7/lib-old',
 '/home/tarek/Documents/python/myproject-cms/env/lib/python2.7/lib-dynload',
 '/usr/lib/python2.7',
 '/usr/lib/python2.7/plat-x86_64-linux-gnu',
 '/usr/lib/python2.7/lib-tk',
 '/home/tarek/Documents/python/myproject-cms/env/local/lib/python2.7/site-packages']

Server time:    Sat, 28 Jun 2014 06:02:50 -0500

然后我把字符串链接放到了

INSTALLED_APPS = (
    'djangocms_admin_style',
    'djangocms_text_ckeditor',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.admin',
    'django.contrib.sites',
    'django.contrib.sitemaps',
    'django.contrib.staticfiles',
    'django.contrib.messages',
    'cms',
    'mptt',
    'menus',
    'south',
    'sekizai',
    'djangocms_style',
    'djangocms_column',
    'djangocms_file',
    'djangocms_flash',
    'djangocms_googlemap',
    'djangocms_inherit',
    'djangocms_link',
    'djangocms_picture',
    'djangocms_teaser',
    'djangocms_video',
    'reversion',

    'filer',
    'easy_thumbnails',
    'adminsortable',
    #'aldryn_common',
    'easy_select2',
    'parler',

    'cms_form_plugin',
    'widget_tweaks',
    'myapp',
    'myproject',
)

settings.py文件中,并在settings.py文件里添加了以下几行代码。

SOUTH_MIGRATION_MODULES = {
    'easy_thumbnails': 'easy_thumbnails.south_migrations'
}

THUMBNAIL_QUALITY = 95
THUMBNAIL_PROCESSORS = {
    'easy_thumbnails.processors.colorspace',
    'easy_thumbnails.processors.autocrop',
    #'easy_thumbnails.processors.scale_and_crop',
    'filer.thumbnail_processors.scale_and_crop_with_subject_location',
    'easy_thumbnails.processors.filters',
}

THUMBNAIL_PRESERVE_EXTENSIONS = {'png', 'gif',}
THUMBNAIL_SUBDIR = 'versions'

但是之后我在浏览器中仍然看到错误页面,我需要解释一下为什么会这样,非常感谢。

1 个回答

1

Django 期望 THUMBNAIL_PRESERVE_EXTENSIONSTHUMBNAIL_PROCESSORS 是用元组来表示的,而不是集合。

你需要把使用的 {} 改成 ()

所需的输入格式可以在 这个页面 上找到。

撰写回答