Como retornar json da model ou QuerySet em seu Django ?
Simples… utilizando o módulo DjangoFullSerializers, do WADOFSTUFF.
Link: http://code.google.com/p/wadofstuff/wiki/DjangoFullSerializers
Conforme escrito no wiki, este módulo, extende as funcionalidades do Django Built-in Serializer, adicionando 3 novas funcionalidades, inspiradas no RubyOnRails Json Serializer:
- excludes: onde você informa os campos que não serão serializados
- extras: onde você informa outras propriedades da model, que não sejam fields, para serem serializados. Métodos por exemplo.
- relations: onde você informa quais propriedades são listas ou dicionários que devem ter seus itens serializados também.
E isto é muito interessante, pois assim, com esta lib, conseguimos serializar nossa model e suas models relacionadas.
por exemplo
Dadas as models abaixo:
class Pessoa(models.Model):
nome = models.CharField(max_length=50)
pai = models.ForeignKey(self)
quando serializar-mos ela, da seguinte forma ( levando em consideração que seu DjangoFullSerializers ja´está corretamente instalado):
json = serializers.serialize( 'json', Pessoa.objects.all() , indent=4, relations=('pai',) )
o json retornado será o seguinte:
[
{
"pk": 2,
"model": "projeto.Pessoa",
"fields": {
"nome":"...",
"pai": {
"pk": 1,
"model" : "projeto.Pessoa",
"fields": {
"nome" : "..."
}
}
}
}
]
ou seja, serializando o objeto que mandamos, e os objetos relacionados a ele…
Muito bom ! E além de tudo, vai formatado se informado o parametro “indent”, caso não informado, vem flat…
Últimos Comentários
(2 weeks ago)
(2 weeks ago)
(2 weeks ago)
(2 weeks ago)
(3 weeks ago)
(3 weeks ago)
(7 weeks ago)
(10 weeks ago)
(10 weeks ago)
(11 weeks ago)