Django 1.7ではmimetypeではなくcontent_typeを利用する
DjangoでJSON形式のレスポンスを返すビューを作っていたのですが、Djangoを1.6から1.7にアップグレードした際にエラーが発生しました。
views.py
import json from django.http import HttpResponse def some_view(request): some_dict = {'hoge': 'hogehoge'} some_json = json.dumps(some_dict, ensure_ascii=False) return HttpResponse(some_json, mimetype='application/json')
エラーの内容
File "***/views.py", line ***, in some_view return HttpResponse(some_json, mimetype='application/json') File "***/site-packages/django/http/response.py", line 318, in __in it__ super(HttpResponse, self).__init__(*args, **kwargs) TypeError: __init__() got an unexpected keyword argument 'mimetype'
Django1.7から、HttpResponse等のmimetypeという引数は廃止されたらしい。
Django Deprecation Timeline | Django documentation | Django
Django1.7以降ではmimetypeの代わりにcontent_typeという引数を利用する必要があります。
views.py
def some_view(request): some_dict = {'hoge': 'hogehoge'} some_json = json.dumps(some_dict, ensure_ascii=False) return HttpResponse(some_json, content_type='application/json')
これで問題なく動作しました。