Привет, я пытаюсь написать функцию, используя if / elif, у меня возникли проблемы при попытке выполнить последнюю функцию курсора после elif. Я думаю, что мой отступ неверен, и я пытался найти, где ошибка в течение дня:
def api_report(request):
params = request.GET
if params["type"] == 'revenue':
sql = get_revenue_query(params)
elif params["type"] == 'order_count':
sql = get_order_created_count(params)
elif params["type"] == 'product_count':
sql = get_product_count(params)
elif params["type"] == 'order_card_created_count':
sql = get_order_card_created_count(params)
elif params["type"] == 'product_count':
sql = get_product_count(params)
elif params["type"] == 'card':
sql = get_card_query(params)
elif params["type"] == 'order_not_card_created_count':
sql = get_order_not_card_created_count(params)
elif params["type"] == 'product':
get_product_report(params)
elif params["type"] == 'order_rate_by_district':
sql = get_order_rate_by_district(params)
with connection.cursor() as cursor:
cursor.execute(sql)
rows = cursor.fetchall()
data = []
for row in rows:
data.append(OrderRateDataEntry(row[0], row[1], row[2]))
serializer = OrderRateDataEntrySerializer(data, many=True)
return JsonResponse(serializer.data, safe=False)
with connection.cursor() as cursor:
cursor.execute(sql)
rows = cursor.fetchall()
data = []
for row in rows:
data.append(TimeSeriesDataEntry(row[0], row[1]))
serializer = TimeSeriesDataEntrySerializer(data, many=True)
return JsonResponse(serializer.data, safe=False)
Ошибка:
cursor.execute(sql) UnboundLocalError:
local variable 'sql' referenced before assignment
elif params["type"] == 'product':
и elif params["type"] == 'order_rate_by_district':
имеют собственную функцию для выполнения, я хочу, чтобы другие условия перешли к последней функции курсора в конце кода.