Practico la web editada con Python + Django , seguí la muestra tratando de exportar datos de db a la web frontal y quiero descargar el archivo CSV. Aquí está toda mi función. Descarga un archivo, pero muestra el título y no muestra ningún dato.
Gracias a todos.
Vistas: función de búsqueda sid
def search_by_sid(request,pk=1): sdepartments = Department.objects.all() cdepartments = CDepartment.objects.all() ssid = CourseData.objects.all() if request.method == "POST": sid = request.POST.get("sid").strip() if "," in sid: course = CourseData.objects.filter(sid="NA") sids = sid.split(",") for n in sids: courses = CourseData.objects.filter(sid = n.strip()) course =course | courses else: course = CourseData.objects.filter(sid=sid).order_by("teacher") num = len(course) return render(request, "list.html") return redirect("/")función de descarga de archivos:
def down_file(request): sdepartments = Department.objects.all() cdepartments = CDepartment.objects.all() ssid = CourseData.objects.all() if request.method == "POST": sids = request.POST.get("sid") dfs = CourseData.objects.filter(sid__in=['sid']).values_list("sid","name","phone","email","sdept") response = HttpResponse(content_type="text/csv") response.write(codecs.BOM_UTF8) response['Content-Disposition'] = 'attachment; filename = "Report.csv"' writer = csv.writer(response) print(writer) writer.writerow(["sid","name","phone","email","sdept"]) for sop in dfs: writer.writerow(sop) return responsePlantillas: función de botón
<form id="sid" action="/bysid/" method="post"> {% csrf_token %} Search:<input name="sid" size="50" placeholder="Search"> <input type="submit" value="Go Search"> <input id="btnType" type="hidden" value="Search"> <button type="button" id="down_file" >Download Files</button> </form>función js:
$(document).ready(function(){ $("#down_file").click(function(){ $("#btnType").val('accpeted'); <!--Why Null ?!--> $("#sid").submit(); }); });