【发布时间】:2016-01-15 09:44:39
【问题描述】:
有没有人有 SimpleUploadedFile 在 Python 3 中使用 Django 的工作示例?
此代码在 Python 2 中有效,但在 Python 3 中无效。
我有以下测试:
test.py
class AttachmentModelTests(TestCase):
def setUp(self):
self.model = mommy.make(LocationLevel)
base_dir = dirname(dirname(dirname(__file__)))
self.image = join(base_dir, "source/attachments/test_in/test-mountains.jpg")
def test_create(self):
_file = SimpleUploadedFile(self.image, "file_content",
content_type="image/jpeg")
attachment = Attachment.objects.create(
model_id=self.model.id,
file=_file
)
self.assertIsInstance(attachment, Attachment)
self.assertEqual(
attachment.filename,
self.image.split('/')[-1] # test-mountains.jpg
)
这是它输出的错误:
Traceback (most recent call last):
File "/Users/alelevier/Documents/bsrs/bsrs-django/bigsky/generic/tests/test_models.py", line 97, in test_create
content_type="image/jpeg")
File "/Users/alelevier/.virtualenvs/bs/lib/python3.4/site-packages/django/core/files/uploadedfile.py", line 114, in __init__
super(SimpleUploadedFile, self).__init__(BytesIO(content), None, name,
TypeError: 'str' does not support the buffer interface
【问题讨论】:
标签: python django python-3.x