RAW SQL TO JSON в Джанго, с столбцами DateTime и Decimal MySQLPython

Программы на Python
Anonymous
 RAW SQL TO JSON в Джанго, с столбцами DateTime и Decimal MySQL

Сообщение Anonymous »

Я использую Ajax для выполнения некоторых запросов от клиента на сервер, я использовал Django и я использовал несколько необработанных запросов SQL, но все мои поля были int, varchar и десятичные десятичные Проблема кодирования, но я перевернул свойство «по умолчанию» JDON и все сработало. У меня ошибки кодирования, переопределенный «по умолчанию» не работает сейчас, поэтому с этим новым я использовал djangojsonencoder , но теперь у меня есть другая проблема, и это не кодирование, я использую Dictfetchall (Cursor) Метод, рекомендованный на Django Docs, чтобы вернуть словарь из SQL -запроса, потому что cursor.fetchall () дает мне эту ошибку: 'объект Tuple' не имеет атрибута '_meta' .
, прежде чем я только что отправил этот словарь на json.dumps (response_data, default = default) , и все было хорошо, но теперь для кодирования я должен использовать следующее: json .dumps (response_data, cls = djangojsonencoder) < /code> и если я отправлю словарь таким образом, я получаю эту ошибку: < /p>

syntaxError: json. PARSE: Неожиданный символ в строке 1 Столбец 1 данных JSON

И если я попытаюсь использовать сериализаторы, например:

Код: Выделить всё

response_data2= serializers.serialize('json', list(response_data))
, а затем отправить ответ_data2 на дампы , я получаю эту ошибку:

' DICT 'Object не имеет атрибута' _meta '< /p>
< /blockquote>
Это код для запроса mysql: < /p>

Код: Выделить всё

def consulta_sql_personalizada(nombres,apellidos,puesto):
from django.db import connection, transaction
cursor = connection.cursor()

cursor.execute("""select E.idEmpleado as id,CONCAT(Per.nombres_persona,' ',Per.apellidos_persona) as nombre,P.nombre_puesto as puesto,E.motivo_baja_empleado as motivo_baja,E.fecha_contratacion_empleado AS fecha_contratacion,E.fecha_baja_empleado as fecha_baja, SUM(V.total_venta) AS ventas_mes,E.fotografia_empleado as ruta_fotografia from Empleado as E
inner join Puesto as P on E.Puesto_idPuesto=P.idPuesto
inner join Venta as V on V.vendedor_venta=E.idEmpleado
inner join Persona as Per on E.Persona_idPersona=Per.idPersona
where (Per.nombres_persona like %s OR Per.apellidos_persona like %s OR E.Puesto_idPuesto=%s)
AND E.estado_empleado=1 AND V.estado_venta=1
AND
(YEAR(V.fecha_venta) = YEAR(Now())
AND MONTH(V.fecha_venta) = MONTH(Now()))""",[nombres,apellidos,puesto])
row = dictfetchall(cursor)
return row
< /code>
И это последняя часть представления, которая делает запрос и отправляет его Ajax, используя json: < /p>
        response_data=consulta_sql_personalizada(rec_nombres,rec_apellidos,rec_puesto)
return HttpResponse(
json.dumps(response_data,cls=DjangoJSONEncoder),
content_type="application/json"
)
else:
return HttpResponse(
json.dumps({"nothing to see": "this isn't happening"}),
content_type="application/json"
)
Что я хочу знать>

Подробнее здесь: https://stackoverflow.com/questions/388 ... ql-columns

Вернуться в «Python»