Il secondo giorno della mia nuova vita con Django, per favore scusate la semplicità della mia domanda.Principiante: Django: aggiunta di risultati calcolati a Queryset prima di passare al modello
Ho una tabella DB esistente (accesso in sola lettura) che ho visualizzato correttamente i contenuti di una pagina Web utilizzando url, viste, modelli e tutto ciò che di positivo.
La sfida che ho è la tabella non contiene tutte le informazioni che ho bisogno di visualizzare. La tabella contiene i risultati dei test con le colonne, sampletime, samplevalue, sampleresult. Devo visualizzare diversi dati in base a ciò che calcolo da quelle colonne.
Il mio obiettivo finale è visualizzare queste informazioni come un grafico delle serie temporali utilizzando flotr. Per ora Id essere felice per scaricare solo i dati che ho bisogno di un tavolo su una pagina web. (Così posso visualizzare i dati risultanti)
Cosa Id piace passare al modello è,
- jssampletime (l'oggetto SampleTime datetime convertito in javascript epoca ms)
- ResultValue (rolling sum + - di samplevalue in base al fatto sampleresult era buono o cattivo)
io sto bene con la creazione jssampletime e resultva lue usando le funzioni def. Presumo che aggiungerei queste funzioni a views.py
Immagino che cosa ho bisogno di fare iterare su una query Impostare in views.py e memorizzare i risultati in una lista di dizionari che passo al modello. Qualcosa di simile (codice non testato).
views.py
# views.py
# Sudo code to assit in asking the question
from django.shortcuts import render_to_response
from thing.reporter.models import Samples
def _datetime_to_js(sampletime):
#.. date conversion epoch magic
return jsd_result
def _rolling_sum(samplevalue,sampleresult):
#.. summing magic
return sum_result
def dumptable(request): # The def that is called by urls.py
object_list = Samples.objects.all()
list_for_template = []
for row in object_list:
jssampletime = _datetime_to_js(row.sampletime)
resultvalue = _rolling_sum(row.samplevalue,row.sampleresult)
list_for_template.append({'jssampletime':jssampletime,'resultvalue':resultvalue})
return render_to_response('tabledump.html', {'result_list': list_for_template})
tabledump.html
# tabledump.html template
{% block content %}
<h2>Results dumped to page for testing</h2>
<ul>
<table>
{% for result in result_list %}
<tr>
<td>{{ result.jssampletime }}</td>
<td>{{ result.resultvalue }}</td>
</tr>
{% endfor %}
</table>
</ul>
{% endblock %}
penso che questo avrebbe funzionato, ma non sono sicuro se è il modo in cui Django MVC.
è giusto che io,
- calcolare il risultato che ho bisogno in views.py da interating su un risultato set di query?
- passare il mio risultato a un modello come elenco di dict (è un set di query più di )?
Immagino che sto cercando alcuni suggerimenti di direzione e codice. Sono sulla buona strada? C'è un modo migliore ?
eccellente. La tua risposta ha fatto più luce su modelli e querysets. Sto iniziando a prendere questa cosa di Django adesso. Piccoli passi Ora ho i dati che mi servivano da visualizzare su una pagina Web di base. Grazie Cory, novellino –
sicuro, lieto che abbia aiutato. non dimenticare che puoi accettare la risposta ...;) – Cory