Web Programming/Django
Django - 관리자 페이지에서 엑셀 출력 방법
junha6316
2020. 10. 12. 12:18
한글 출력 때문에 꽤 고생했다..
HttpResponse에서 charset ='euc-kr'로 바꿔 출력하면 된다.
#app -> admin.py 에 다음과 같이 작성한다.
actions = ["export_as_csv"]
def export_as_csv(self, request, queryset):
""" return Export as csv File """
meta = self.model._meta #모델이름을 불러온다.
response = HttpResponse(content_type="text/csv")
#기본 인코딩 방식은 utf-8이므로 한글 출력을 원할때는 아래 주석과 같이 작성한다.
#response = HttpResponse(content_type="text/csv", charset = 'euc-kr')
response["Content-Disposition"] = "attachment; filename={}.csv".format(meta)
writer = csv.writer(response)
writer.writerow(field_names)
for obj in queryset:
row = writer.writerow([getattr(obj, field) for field in field_names])
return response