Django и Ajax: django url загружается в консоли, но функция просмотра не работает
В принципе, я сталкиваюсь с подобной проблемой, как здесь: django url загружается в консоли, но функция в представлении не работает, но я все еще не могу найти решение.
Views.py (handler.py)
def delete(request, project_id):
fid = request.GET.get('fid', '')
print("------------------", fid)
Handler.objects.filter(id=fid, project_id=project_id).delete()
return JsonResponse({'status': True})
def barchart_handler(request, project_id):
""" get the total amount of schrotte and 'legierungen' for every handler """
# calculate the total amount of schrotte for every handler
model_list = [Schnellstahlschrott_kobaltfrei, Tiefzieh_stanzabfaelle, Schnellstahlschrott_kobaltlegiert,
Cr_17_Or_Cr_13, Cr_Ni_Schrott, Kaltarbeitsstahl, Warmarbeitsstahl, Cr_Ni_148xx]
masse_sum_list = []
firma_name_list = []
for index, model in enumerate(model_list):
# calculate the total amount of schrotte for every handler
menge_sum = model.objects.values_list('spezifikation__handler__name').annotate(menge_masse_sum=Sum('Menge'))
firma_name_list = [item[0] for item in menge_sum]
masse_list = [float(item[1]) for item in menge_sum]
masse_sum_list.append(masse_list)
df = pd.DataFrame(masse_sum_list, columns=firma_name_list)
df.loc['Total', :] = df.sum(axis=0)
total_sum = df.loc['Total', :].values.tolist()
if len(total_sum) > 0:
context = {
"status": True,
"data": {
"firma_name_list": firma_name_list,
"total_sum": total_sum,
}
}
return JsonResponse(context)
else:
return JsonResponse({'status': False, 'errors': 'No data found'})
html шаблон и код javascript:
И, наконец, вот
Urls.py
# project detail
re_path('manage/(?P<project_id>\d+)/', include([
re_path('handler/$', handler.handler, name='handler'),
re_path('handler/delete/$', handler.delete, name='delete_handler'),
re_path('handler/barchart/$', handler.barchart_handler, name='barchart_handler'),
Я хочу DELETE объект Handler при всплытии Modal, и отобразить Echarts для некоторой статистики, но оба варианта не работают.
Я получил консольную информацию следующего содержания:
[04/Apr/2022 12:56:40] "GET /manage/2/handler/?page=2 HTTP/1.1" 200 21073 [04/Apr/2022 12:56:40] "GET /manage/2/handler/barchart/ HTTP/1.1" 200 21146 [04/Apr/2022 12:56:46] "GET /manage/2/handler/delete/?fid=21 HTTP/1.1" 200 21146
.
Но функция views на самом деле не получает вызов.
Сделал глупую ошибку, забыл добавить "$" после re_path('handler/$', handler.handler, name='handler'), после добавления "$", теперь все работает. Надеюсь, это может помочь кому-нибудь еще, кто столкнется с подобной проблемой.