最近 ascii 與 unicode 的問題也不斷出現,有些東西利用套件抓回來就 error ,這個部分只好先保留,先把我要寫出的檔案轉出來好了。
django 可以自訂在 admin 當中針對資料表要做的功能,放在 table list 下拉選單裡面。
admin.py
遇到 table 中繁體字的欄位,需要 UNICODESTRING.encode('utf-8','ignore') 來轉換一下。
from MYAPP.models import * from django.contrib import admin from django.contrib.auth.models import User import csv from django.http import HttpResponse class MYMODELADMIN(admin.ModelAdmin): list_display = ('FIELD1','FIELD2') readonly_fields = list_display actions = ['GETFILE'] def GETFILE(self, request, queryset): response = HttpResponse(mimetype='text/csv') response.write('\xEF\xBB\xBF') response['Content-Disposition'] = 'attachment; filename="FILENAME.csv"' writer = csv.writer(response) writer.writerow(['DATA1','DATA2'),'DATA3']) for i in queryset: writer.writerow([i.DATA1.encode('utf-8','ignore'),i.DATA2.encode('utf-8','ignore'),i.DATA3.encode('utf-8','ignore')]) return response get_winner_file.short_description = u'下載檔案'
readonly 則是在樣板中顯示為唯讀。
選完功能,會自動下載熱騰騰的csv了。
0 留言