[ninux-dev] django question

Nemesis nemesis at ninux.org
Wed Dec 23 11:14:31 CET 2015


Il suggerimento di Alessandro mi sembra corretto,
Inoltre ti consiglio sempre di usare full_clean() prima di salvare e
gestire eventuali eccezioni, altrimenti rischi di salvare spazzatura.

Una domanda: per monitorare intendi loggare e quindi offrire dei grafici
o semplicemente visualizzare?

Federico


On 12/23/2015 10:56 AM, Alessandro Bucciarelli wrote:
>
> Il secondo save non riesce a reperire l'istanza di Scan salvata fuori
> dal ciclo perché oramai quella è salvata nel db quindi Node che ha la
> Foreign a Scan non sa quale istanza di Scan andare a prendere, in
> particolare l'id.
>
> Prova così dovrebbe essere corretto:
>
> def refresh_db(json_url):
>    .  resp = urllib2.urlopen(json_url)
>       f = resp.read()
>       json_topo = json.loads(f)
> . . . for node in json_topo['nodes']:
> . . . . . . scan = Scan()
> . . . . . . node = Node(node_id=node['id'],
> . . . . . . node_name=node['label'],
> last_scan=scan).save(commit=False)
> . . . . .  scan.save()
> . . . . .  node.save()
>
> Il commit è una opzione di save particolarmente utile quando devi
> ancora avere a disposizione oggetti che sono ForeignKey, diciamo che
> prepara l'oggetto ma non lo salva.
> Quindi crei un oggetto Scan, ma non lo salvi, prepari un Node con le
> Info necessarie ma lo salvi con commit False e poi salvi l'oggetto più
> interno e poi quello esterno.
>
> Scusa l'indent ma da cellulare è un incubo mettere gli spazi.
>
> Let us know.
>
>
>
> _______________________________________________
> ninux-dev mailing list
> ninux-dev at ml.ninux.org
> http://ml.ninux.org/mailman/listinfo/ninux-dev

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://ml.ninux.org/pipermail/ninux-dev/attachments/20151223/92d6388a/attachment-0001.html>


More information about the ninux-dev mailing list