Django DRFのImageFieldをresponseとして返したいとき
今回はDjango REST FrameworkでImageFieldをresponseとして返したいときどのようにすれば良いのかについてご紹介いたします。
Django DRFのImageFieldをresponseとして返したいとき
Django REST FrameworkでImageFieldをserializerを介してresponseを返そうとすると、
ImageFieldが代入されているときは
「UnicodeDecodeError: 'utf-8’ codec can’t decode byte 0xff in position 0: invalid start byte」
ImageFieldが代入されていないときは
「ValueError: The " attribute has no file associated with it.」
とエラーが出てresponseとして返されません。
ではどうすればresponseとして返すことができるかというと、例としてImageFieldの属性がtest_image_fieldだった場合、responseの中のdictのtest_image_fieldを
1 |
'profile_image': str(request.test_image_field) |
などとstrで囲ってstringに変えてやれば良いだけです。
簡単ですね。
どこにも載っていなかったのでDjangoのshellで試行錯誤して答えにたどりつきました。
終わりに
今回はDjango REST FrameworkでImageFieldをresponseとして返したいときどのようにすれば良いのかについてご紹介いたしました。
ディスカッション
コメント一覧
まだ、コメントがありません