В моем приложении Django есть ошибка, которую я никак не могу понять из-за своей жизни
В основном проблема заключается в том, что мой вызов get JSON терпит неудачу в моем шаблон, и я не могу понять, почему, потому что я могу получить доступ к URL напрямую через браузер, и сервер разработки также показывает ответ 200.
Вот мой взгляд
def test(request):
cases = ConfirmedCase.objects.all()
cases = read_frame(cases, fieldnames=['provice_state', 'country_region', 'confirmedcases','date'])
cases['date'] = pd.to_datetime(cases['date'])
globaltrend = globaltrend.groupby('date')[['confirmedcases','1_day_growth']].sum().reset_index()
globaltrend['date'] = globaltrend['date'].dt.date #convert back to date
globaltrend= globaltrend.to_dict(orient='list')
data = {}
data['chart_data'] = globaltrend
data = json.dumps(data, default=str)
return HttpResponse(data, content_type='application/json')
Вот URL
from tracker import views as tracker
urlpatterns = [
path('test/', tracker.test, name="test"),
]
Если я go до http://127.0.0.1: 8000 / test / в браузере, все отлично работает, и я вижу
{
"chart_data": {
"date": [
"2020-03-26",
"2020-03-27"
],
"confirmedcases": [
66885,
69030,
],
"1_day_growth": [
3.21,
3.18,
],
}
}
Вот мой скрипт в моем шаблоне / html file
<script >
$(document).ready(function(){
var url = '{% url "test" %}'
$.getJSON(url, function(d) {
console.log("working");
alert('yay')
}).done(function(d) {
console.log("done");
}).fail(function(d) {
console.log("error");
console.log(url);
}).always(function(d) {
console.log("completed regardl");
});
});
</script>
Это продолжает выдавать ошибку (и я не вижу предупреждения), даже если это правильно консоль, в которой записывается URL-адрес. Кажется, я просто не могу успешно выполнить обратный вызов
Вот мой вывод сервера разработки по refre sh
[29/Mar/2020 00:53:59] "GET /test/ HTTP/1.1" 200 1498
Мне нужно это для диаграммы в моем шаблоне. Любая помощь будет очень признательна
ОБНОВЛЕНИЕ
Я думаю, что ошибка связана с представлением, потому что, когда я упрощаю представление к следующему:
def test(request):
data = {"hello":[1,2,3]}
return HttpResponse(json.dumps(data, default=str), content_type='application/json')
Мой вызов get JSON начинает работать в браузере (т.е. я вижу предупреждение и успех в журнале консоли)
Я не могу понять, почему исходное представление работает напрямую через URL, но не через get JSON call