Я по-прежнему новичок в разработке Django/web, но имею опыт работы с Python и PSQL.База данных запросов Django и отправка данных в шаблон
У меня есть база данных psql со столом с id, date и значением для портфеля ценных бумаг. В таблице указано абсолютное значение.
Я хочу отправить данные в шаблон, а затем нарисуйте его с помощью Highcharts.JS. Насколько я понимаю, мне нужно настроить models.py для запроса базы данных, которая установлена в Django, конвертировать ее в JSON, а затем отправить ее в шаблон для графического отображения.
Может ли кто-нибудь сказать мне, является ли это правильным синтаксисом для получения идентификатора, даты и значения и как отправить дату и значение в формате json в шаблон?
Это применимо модель части:
class Absolutedollarvalue(models.Model):
cik = models.CharField(max_length=16)
date = models.DateField()
value = models.DecimalField(max_digits=65535, decimal_places=65535)
class Meta:
managed = False
db_table = 'absolutedollarvalue'
Ниже мой views.py код:
from django.shortcuts import render
from django.http import HttpResponse
from django.db import connection
from toa.models import Absolutedollarvalue as adv
import psycopg2
import json
import datetime
def adv(request):
adv.objects
a = adv(id = '1103804')
return render(request,toa/graphs.html,a)
Это мой шаблон:
<html>
<head>
<title> Fund Performance </title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<script src="http://code.highcharts.com/highcharts.js"></script>
</head>
<body>
<div id="chart_container" style="width:100%; height:400px;"></div>
<script type="text/javascript">
$(document).ready(function() {
var absolutedollarval = {
chart: {
renderTo: 'chart_panel',
type: 'time-series',
},
legend: {enabled: false},
title: {text: 'Daily NAV'},
xAxis: {title:{text:'Date'}},
yAxis: {title: {text: 'dollar value'}}
};
var chartDataUrl = "{% url 'chart_data_json' %}?name = avg_by_day"
+"&days=14";
$.getJSON(chartDataUrl,
function(data){
absolutedollarval.xAxis.categories=
absolutedollarval.series[0].name =
absolutedollarval.series[0].data =
var chart = new Highcharts.Chart(absolutedollarval);
});
});
</script>
</body>
</html>
Действительно ценим любую помощь вам может дать. Благодаря!
Edit:
ли это, как вы бы подтолкнуть значение шаблона, если я хочу дату и значение столбца?
def adv(request):
dates = adv.objects.filter(cik = '1103804').values('date')
vals = adv.objects.filter(cik ='1103804').value('absolutedollarvalue')
data = serializers.serialize('json', dates)
data2 = serializers.serialize('json',vals)
return render(request,'toa/graphs.html',{"dates":data,"values":data2})
Ваш 'adv' функция выглядит как нонсенс. Вы должны прочитать django docs, чтобы узнать, как написать функцию просмотра и передать переменные, которые будут отображаться в шаблоне. –
Я использовал django docs для извлечения объектов, и они приводили пример: >>> Blog.objects >>> b = Блог (name = 'Foo ', tagline =' Bar ') >>> b.objects –
user3628240
Итак, я думаю, что объект a должен предоставить мне все строки данных с этим id. Я просто хочу преобразовать дату и значение в json, а затем отправить его в highcharts. – user3628240