[WL::Techniek] Filters & json

Dennis Wagenaar d.wagenaar at gmail.com
Mon May 30 10:58:19 UTC 2011


2011/5/28 Rick van der Zwet <info at rickvanderzwet.nl>

> 2011/5/26 Dennis Wagenaar <d.wagenaar at gmail.com>:
> > Zou je mij even een zetje in de goede richting kunnen geven?
>
> Ik ben even kwijt wat je precies probeert te bereiken, kan je toch nog
> een static voorbeeld geven (kunnen ook een paar ingescande schetsen
> zijn).
>

Ja, ik bedoel dus de selectie. Eigenlijk precies dit:
http://www.dynamicdrive.com/dynamicindex16/chainedselects/index.htm


>  > Ik probeer een JSON object te maken die resultaten uit meerdere django
> > queries bevat. Het leek me wel handig om zo de filters dynamisch te maken
> > (dat als je bijv. bij gebruiker 'Piet' selecteerd, je bij meetrondje ook
> > alleen Piet's rondjes kan selecteren, en vervolgens de nodes die bij dat
> > rondje zijn gemeten).
> >
> > Wat ik dus ong. wil bereiken:
> >
> > [ { "gebruiker" : Piet, 'meetrondje' : [ { 'naam' : rondje1, 'nodes' : {
> > 'ssid' : test1, 'ssid' : test2 }}, { 'naam' : rondje2 ...} ], {
> "gebruiker"
> > : Jan ...} ]
>
> Kan moet je zelf die structuur maken en encoderen: zie voorbeelden op:
>     http://simplejson.github.com/simplejson/
>

Ik heb hier al een beetje omheen gewerkt door nu elke json apart op te
vragen. Is het beter om het apart te doen, of om zelf de structuur te maken?


>  > Nu lukt het wel om resultaten van enkele queries in JSON te zetten en te
> > gebruiken voor de filters (zie de nodelijst filter in de laatste rev.),
> maar
> > ik kan niet echt een praktische manier vinden om resultaten van meerdere
> > queries in een JSON te zetten.
>
> Kan je een voorbeeld geven hoe je de queries wilt combineren?
>

Gebruiker.objects.values('naam', 'meetrondje__naam', 'meetrondje__datum')

Maar dit krijg ik niet in JSON omgezet:

>>> lijst = Gebruiker.objects.values('naam', 'meetrondje__naam',
'meetrondje__datum')
>>> from django.core import serializers
>>> serializers.serialize('json', lijst)
 ...
AttributeError: 'dict' object has no attribute '_meta'

Ditzelfde maar dan met Gebruiker.objects.all() werkt wel.

Met simplejson:
>>> import simplejson
>>> simplejson.dumps(lijst)
 ...
TypeError: [<Gebruiker: username - foo at bar.org>, <Gebruiker: test -
test at tes.tt>] is not JSON serializable


> > Dus mijn vraag, hoe kan ik het bovenstaande voorbeeldje bereiken? Pak ik
> het
> > ook eigenlijk wel op de goede manier aan om zo de filterlijst dynamisch
> te
> > maken?
>
> We zitten een heel eind op de goede weg, echter ik ben de weg ff kwijt
> wat je precies met de dynamische filter

[opties]

> s wilt.
>

Opties voor filters bieden die up-to-date zijn en die elkaar niet
tegenspreken. Dus voorkomen dat 'gebruiker: Piet', 'meetrondje: Rondje2' kan
worden gekozen als Rondje2 van Jan zou zijn ipv Piet.


>  > En dan nog even een update: de interface heeft wat werk gehad, de
> nodelijst
> > werkt (met klik, mouseover werkte nog niet zo heel geweldig), en filters
> > zijn semi-werkend (handmatige invoer was mogelijk, maar heb ik gesloopt,
> > wilde het dynamisch).
>
> Het zit er idd gelikt uit! Als die dynamische filters werken is het
> tijd dat we het product klaar gaan maken voor een alpha release.
>

Nog even een vraagje. Is het OK als ik woensdag en vrijdag vrij neem?
(Donderdag is hemelvaart als ik het goed heb).

Groet,
Dennis

-- 
Dennis Wagenaar
d.wagenaar at gmail.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lijst.wirelessleiden.nl/pipermail/techniek/attachments/20110530/6d0f45ad/attachment.html>


More information about the Techniek mailing list