#現状
開発環境にて、CSV出力を行う機能を作詞して動作確認も終え、
実際にデプロイ済のアプリに追加をしました。
追加後、サーバーの再起動も行い、CSV出力を行うと
500errorが帰ってきてしまい困っています。
#ソース
views.py from .models import Support import csv def download(request): # レスポンスの設定 response = HttpResponse(content_type='text/csv; charset=Shift-JIS') filename = 'data.csv' #csv名 response['Content-Disposition'] = 'attachment; filename={}'.format(filename) writer = csv.writer(response) # ヘッダー出力 header = ['日付','タイトル','内容'] writer.writerow(header) # データ出力 for data in Support.objects.all(): writer.writerow([data.date, data.title, data.contents]) return response
urls.py from django.urls import path from . import views urlpatterns = [ path('', views.index, name='index'), path('download/', views.download, name='download'), ]
templates <a href='{% url "download" %}' class="btn btn-secondary">データのダウンロード</a>
#最後に
他のアプリもサーバーで動いているため、「return response」がうまく動作していないのか?
という疑問はあります。
提案や、改善案などがございましたらご教授ください。
#追記
デバックモードでエラーを見ることが出来ました。
エラー内容は下記のとおりです。
UnicodeEncodeError at /support/download/ 'shift_jis' codec can't encode character '\uff0d' in position 46: illegal multibyte sequence
UTF-8で試しましたところ、ダウンロードは出来るようになりましたが文字化けします。
文字化けを回避するにはShift-JIS以外で方法はあるのでしょうか。
回答3件
あなたの回答
tips
プレビュー