Ich versuche, eine CSV-Datei nach einer MySQL-Abfrage zu exportieren. Ich erhalte den folgenden Fehler;Mysql Fehler auf Django
(1064: "Sie haben einen Fehler in der SQL-Syntax, das Handbuch überprüfen, die für die richtige Syntax zu Ihrem MySQL-Server-Version entspricht in der Nähe zu verwenden '' at line 1")
import csv
from django.db import connections
from django.http import HttpResponse
from django.views.generic import ListView
from testing.models import TrRunSummary, TrDetails
class ExportCsv(ListView):
"""Displays the different tests performed on the specified test request"""
template_name = 'testing/tr_export_csv.html'
context_object_name = 'export_csv'
def get_context_data(self, **kwargs):
context = super(ExportCsv,self).get_context_data(**kwargs)
context['tr_info'] = self.tr_info()
return context
def get_queryset(self):
qtr_id = self.kwargs['trID']
s = str(qtr_id)
print s
print type(s)
cursor = connections['default'].cursor()
query ="SELECT results_stb_id, results_stbs.stb_id, stb_inv.mac_add, "
"test_functionality.test_functionality_code, test_cases.test_case_no, "
"SCRIPT.option_name AS script_result, POST.option_name AS post_result, "
"results_tests.started, results_tests.stopped, results_tests.test_duration, builds.baseline, "
"builds.build_type, stb_hw_info.stb_type, defects.defect_name, parser_output, log_url, "
"script_health_score, post_health_score FROM results_stbs "
"JOIN tr_test_cases "
"ON tr_test_cases.tr_test_case_id=results_stbs.tr_test_case_id "
"JOIN test_cases "
"ON test_cases.test_case_id=tr_test_cases.test_case_id "
"JOIN test_functionality "
"ON test_functionality.test_functionality_id=test_cases.test_functionality_id "
"LEFT JOIN stb_inv "
"ON results_stbs.stb_id=stb_inv.stb_id "
"LEFT JOIN result_options AS SCRIPT "
"ON results_stbs.script_result=SCRIPT.result_option_id "
"LEFT JOIN result_options AS POST "
"ON results_stbs.post_result=POST.result_option_id "
"JOIN results_tests "
"ON results_stbs.results_test_id=results_tests.results_test_id "
"JOIN builds "
"ON builds.build_id=results_stbs.build_id "
"JOIN stb_hw_info_ids "
"ON stb_hw_info_ids.stb_hw_info_ids_id=results_stbs.stb_hw_info_ids_id "
"JOIN stb_hw_info "
"ON stb_hw_info.stb_hw_info_id=stb_hw_info_ids.stb_hw_info_id "
"LEFT JOIN defects_tests "
"ON results_tests.results_test_id=defects_tests.results_test_id "
"LEFT JOIN defects "
"ON defects.defect_id=defects_tests.defect_id "
"WHERE tr_test_cases.tr_id = '%s' AND script_result IN (1, 3, 8) "
"OR tr_test_cases.tr_id = '%s' AND post_result IN (1, 3, 8) "
"ORDER BY results_stb_id ASC " % (s, s)
cursor.execute(query)
print cursor
def tr_info(self):
tr_id = self.kwargs['trID']
tr_info = TrDetails.objects.get(
tr_id=tr_id,
)
return tr_info
class SavedCsvView(ExportCsv):
"""
Subclass of above view, to produce a csv file
"""
template_name = 'TR_Export.csv'
content_type = 'text/csv'
Meine Anfrage funktioniert gut mit Python Script. Wenn ich die Django-Ansichten hinzufüge, gibt es einen Fehler. Irgendwelche Hilfen würden geschätzt werden.
Sie bitte die vollständige Zurückverfolgungs Paste für Fehler –
Sie die direkte SQL-Abfrage auf diese Weise ausführen kann https://docs.djangoproject.com/en/1.10/topics/db/sql/# executing-custom-sql-direct –
Beende die Zeilen mit den Zeichenfolgen mit '\ 'oder verwende dreifache Anführungszeichen oder umkreise alles nach dem' = 'mit'() ', um eine Mehrfachzeile zu erstellen Zeichenfolge. Wie du es gemacht hast, kommt nur der erste Teil in die Saite. –