0
Django REST Frameworkを使用してAPIを開発中です。 私はmodels.ImageField
のDjangoモデルを持っています。 しかし、私はモデルオブジェクトを作成unittestのしたいとき、私はエラーを取得:Djangoのテスト中に画像ファイルをアップロードできません
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x89 in position 0: invalid start byte
は私のコード:
class PlacesTest(APITestCase):
. . .
def test_create_place_full(self):
. . .
image = SimpleUploadedFile(name='test.jpg',
content=open('test.png', 'rb').read(),
content_type='image/jpeg')
request = self.factory.post(reverse('place-list'),
{'name': 'test_place_1',
'picture': image,
})
私は、画像へのパスでstring
を渡して試してみました、と私はDjango testing model with ImageFieldからメソッドを試してみましたテストを行うが成功しない。
イメージを追加するときに、Django RESTフレームワークに渡すべき型はファイルオブジェクトか文字列ですか?
テストに実際のファイルを追加するにはどうすればよいですか?
私は必要なすべてのリクエスト引数でformat='multipart'
指定された:私のプロジェクトで
request = self.factory.post(reverse('place-list'),
{'name': 'test_place_1',
'picture': self.image},
format='multipart')
をした
REST_FRAMEWORK = {
...
'TEST_REQUEST_DEFAULT_FORMAT': 'json'
}
ありませんので、画像、誰かが興味を持っている場合は、私の問題の解決策を見つけた