- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 django imagekit 和 pillow 上传在 django 1.7 中运行良好的图像。最近我们转移到 django 1.10,现在图像上传不起作用。代码片段是:
class Images(models.Model):
image = ProcessedImageField(upload_to='main',
processors=[ResizeToCover(640, 640)],
format='JPEG',
options={'quality': 90})
image_thumbnail = ProcessedImageField(upload_to='thumbnails',
processors=[SmartResize(128, 128)],
format='JPEG',
options={'quality': 70})
user = models.ForeignKey(User)
def upload_image(self, image, user):
if len(image.name) > 30:
image.name = image.name[:20]
i = Images.objects.create(image=image, image_thumbnail=image, user=user)
return i
回溯是:
File "C:\Python35\lib\site-packages\imagekit\specs\__init__.py" in generate
149. img = open_image(self.source)
File "C:\Python35\lib\site-packages\pilkit\utils.py" in open_image
21. target.seek(0)
During handling of the above exception (I/O operation on closed file.), another exception occurred:
File "C:\Python35\lib\site-packages\django\core\handlers\exception.py" in inner
39. response = get_response(request)
File "C:\Python35\lib\site-packages\django\core\handlers\base.py" in _legacy_get_response
249. response = self._get_response(request)
File "C:\Python35\lib\site-packages\django\core\handlers\base.py" in _get_response
187. response = self.process_exception_by_middleware(e, request)
File "C:\Python35\lib\site-packages\django\core\handlers\base.py" in _get_response
185. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "C:\Python35\lib\site-packages\django\contrib\auth\decorators.py" in _wrapped_view
23. return view_func(request, *args, **kwargs)
File "C:\Users\sp\industryo\nodes\views.py" in set_logo
173. i = Images.objects.create(image=image, user=user, image_thumbnail=image)
File "C:\Python35\lib\site-packages\django\db\models\manager.py" in manager_method
85. return getattr(self.get_queryset(), name)(*args, **kwargs)
File "C:\Python35\lib\site-packages\django\db\models\query.py" in create
399. obj.save(force_insert=True, using=self.db)
File "C:\Python35\lib\site-packages\django\db\models\base.py" in save
796. force_update=force_update, update_fields=update_fields)
File "C:\Python35\lib\site-packages\django\db\models\base.py" in save_base
824. updated = self._save_table(raw, cls, force_insert, force_update, using, update_fields)
File "C:\Python35\lib\site-packages\django\db\models\base.py" in _save_table
908. result = self._do_insert(cls._base_manager, using, fields, update_pk, raw)
File "C:\Python35\lib\site-packages\django\db\models\base.py" in _do_insert
947. using=using, raw=raw)
File "C:\Python35\lib\site-packages\django\db\models\manager.py" in manager_method
85. return getattr(self.get_queryset(), name)(*args, **kwargs)
File "C:\Python35\lib\site-packages\django\db\models\query.py" in _insert
1043. return query.get_compiler(using=using).execute_sql(return_id)
File "C:\Python35\lib\site-packages\django\db\models\sql\compiler.py" in execute_sql
1053. for sql, params in self.as_sql():
File "C:\Python35\lib\site-packages\django\db\models\sql\compiler.py" in as_sql
1006. for obj in self.query.objs
File "C:\Python35\lib\site-packages\django\db\models\sql\compiler.py" in <listcomp>
1006. for obj in self.query.objs
File "C:\Python35\lib\site-packages\django\db\models\sql\compiler.py" in <listcomp>
1005. [self.prepare_value(field, self.pre_save_val(field, obj)) for field in fields]
File "C:\Python35\lib\site-packages\django\db\models\sql\compiler.py" in pre_save_val
955. return field.pre_save(obj, add=True)
File "C:\Python35\lib\site-packages\django\db\models\fields\files.py" in pre_save
292. file.save(file.name, file, save=False)
File "C:\Python35\lib\site-packages\imagekit\models\fields\files.py" in save
12. content = generate(spec)
File "C:\Python35\lib\site-packages\imagekit\utils.py" in generate
134. content = generator.generate()
File "C:\Python35\lib\site-packages\imagekit\specs\__init__.py" in generate
153. self.source.open()
File "C:\Python35\lib\site-packages\django\db\models\fields\files.py" in open
81. self.file.open(mode)
File "C:\Python35\lib\site-packages\django\core\files\uploadedfile.py" in open
96. self.file.seek(0)
Exception Type: ValueError at /nodes/set_logo/
Exception Value: I/O operation on closed file.
这里可以做什么。我需要对包进行更改吗?帮助!
最佳答案
似乎 Imagekit 和 Pillow 在最新版本中的交互不是很好。可以看出问题的发生是因为imagekit发送的文件不能被PIL直接处理。
因此,为了裁剪和改变尺寸和质量,我们完全转向了 PIL。
def upload_image1(self, image, user, name, image1):
if len(image1.name) > 30:
image1.name = image1.name[:20]
i = Images.objects.create(image=image1, user=user)
new_image_io = BytesIO()
image.save(new_image_io, format='JPEG')
i.image_thumbnail.save(name, content=ContentFile(new_image_io.getvalue()))
return i
要创建缩略图,我们必须打开图像并将其保存为此处:
new_image_io = BytesIO()
image.save(new_image_io, format='JPEG')
i.image_thumbnail.save(name, content=ContentFile(new_image_io.getvalue()))
希望对您有所帮助!
关于python - 关闭文件的 I/O 操作 : Django Imagekit & Pillow,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39242871/
在使用 requests 库中的状态代码时,我遇到了一些奇怪的事情。每个 HTTP 状态代码都有一个常量,有些具有别名(例如,包括 200 的复选标记): url = 'https://httpbin
这是我得到的代码,但我不知道这两行是什么意思: o[arr[i]] = o[arr[i]] || {}; o = o[arr[i]]; 完整代码: var GLOBAL={}; GLOBAL.name
所以这个问题的答案What is the difference between Θ(n) and O(n)? 指出“基本上,当我们说算法是 O(n) 时,它也是 O(n2)、O(n1000000)、O
这是一个快速的想法;有人会说 O(∞) 实际上是 O(1) 吗? 我的意思是它不依赖于输入大小? 所以在某种程度上它是恒定的,尽管它是无限的。 或者是唯一“正确”的表达方式 O(∞)? 最佳答案 无穷
这是真的: log(A) + log(B) = log(A * B) [0] 这也是真的吗? O(log(A)) + O(log(B)) = O(log(A * B)) [1] 据我了解 O(f
我正在解决面试练习的问题,但我似乎无法找出以下问题的时间和空间复杂度的答案: Given two sorted Linked Lists, merge them into a third list i
我了解 Big-Oh 表示法。但是我该如何解释 O(O(f(n))) 是什么意思呢?是指增长率的增长率吗? 最佳答案 x = O(n)基本上意味着 x <= kn对于一些常量 k . 因此 x = O
我正在编写一个函数,该函数需要一个对象和一个投影来了解它必须在哪个字段上工作。 我想知道是否应该使用这样的字符串: const o = { a: 'Hello There' }; funct
直觉上,我认为这三个表达式是等价的。 例如,如果一个算法在 O(nlogn) + O(n) 或 O(nlogn + n) 中运行(我很困惑),我可以假设这是一个O(nlogn) 算法? 什么是真相?
根据 O'Reilly 的 Python in a Nutshell 中的 Alex Martelli,复杂度类 O(n) + O(n) = O(n)。所以我相信。但是我很困惑。他解释说:“N 的两个
O(n^2)有什么区别和 O(n.log(n)) ? 最佳答案 n^2 的复杂性增长得更快。 关于big-o - 大 O 符号 : differences between O(n^2) and O(n
每当我收到来自 MS outlook 的电子邮件时,我都会收到此标记 & nbsp ; (没有空格)哪个显示为?在 <>. 当我将其更改为 ISO-8859-1 时,浏览器页面字符集编码为 UTF-8
我很难理解 Algorithms by S. Dasgupta, C.H. Papadimitriou, and U.V. Vazirani - page 24 中的以下陈述它们将 O(n) 的总和表
我在面试蛋糕上练习了一些问题,并在问题 2给出的解决方案使用两个单独的 for 循环(非嵌套),解决方案提供者声称他/她在 O(n) 时间内解决了它。据我了解,这将是 O(2n) 时间。是我想错了吗,
关于 Java 语法的幼稚问题。什么 T accept(ObjectVisitorEx visitor); 是什么意思? C# 的等价物是什么? 最佳答案 在 C# 中它可能是: O Accept(
假设我有一个长度为 n 的数组,我使用时间为 nlogn 的排序算法对它进行了排序。得到这个排序后的数组后,我遍历它以找到任何具有线性时间的重复元素。我的理解是,由于操作是分开发生的,所以时间是 O(
总和 O(1)+O(2)+ .... +O(n) 的计算结果是什么? 我在某处看到它的解决方案: O(n(n+1) / 2) = O(n^2) 但我对此并不满意,因为 O(1) = O(2) = co
这个问题在这里已经有了答案: 11 年前关闭。 Possible Duplicate: Plain english explanation of Big O 我想这可能是类里面教的东西,但作为一个自学
假设我有两种算法: for (int i = 0; i 2)更长的时间给定的一些n - 其中n这种情况的发生实际上取决于所涉及的算法 - 对于您的具体示例, n 2)分别时间,您可能会看到: Θ(n)
这个问题在这里已经有了答案: Example of a factorial time algorithm O( n! ) (4 个回答) 6年前关闭。 我见过表示为 O(X!) 的 big-o 示例但
我是一名优秀的程序员,十分优秀!