Pegar elementos especificos de um objeto

1. Pegar elementos especificos de um objeto

Marcus Fernando
marcusfcb

(usa Fedora)

Enviado em 17/11/2011 - 17:17h

Gente blz
aqui eu tenho uma view que serializa no formato que eu quero um objeto python, blz...entao
agora quando eu clicko em cima de uma dos nomes eles pega e passa o id especifico e serializa no formato json somente os dados daquele id especifico

Na serialização de todo o objeto eu estou usando essa função:
Prestem atenção somente no "for"

def json_indexEmpresa(request):
s = '{\n "items":['
for i in Empresa.objects.all():
s = s +'{\n "id":'+str(i.id) + ',\n "nome":"'+str(i.nome)+'",\n "estado":"'+str(i.estado)+'",\n "municipio":"'+str(i.municipio)+'",\n "bairro":"'+str(i.bairro)+'",\n "numero":"'+str(i.numero)+'",\n "cep":"'+str(i.cep)+'",\n "telefone":"'+ str(i.telefone)+'"\n},'
s = s[:-1]
s = s + ']\n}'
return HttpResponse(s, mimetype="text/javascript")


na serialização do objeto Empresa.objects.all() ele fica assim:
{
"items":[{
"id":1,
"nome":"Marcus123",
"estado":"MG",
"municipio":"santa rita do sapucai",
"bairro":"centro",
"numero":"123",
"cep":"3212312312",
"telefone":"112342142142"
},{
"id":2,
"nome":"Leucotron2",
"estado":"MG",
"municipio":"santa rita do sapucai",
"bairro":"centro",
"numero":"123",
"cep":"3212312312",
"telefone":"11111111111"
},{
"id":3,
"nome":"intelligs",
"estado":"MG",
"municipio":"santa rita do sapucai",
"bairro":"centro",
"numero":"123",
"cep":"3212312312",
"telefone":"11111111111"
}]
}
---------------------------------------------------------------------------------------------------------------------------------------------------

Blz mas quando eu quero um especifico ele tem que aparecer o especifico assim:
{
"items":[{
"id":1,
"nome":"Marcus123",
"estado":"MG",
"municipio":"santa rita do sapucai",
"bairro":"centro",
"numero":"123",
"cep":"3212312312",
"telefone":"112342142142"
}]
}
A view q eu estou montando fica mais ow menos asim:

def json_detailEmpresa(request, empresa_id)
e = get_object_or_404(Empresa,pk=empresa_id)

s = '{\n "items":['
for i in e:
s = s +'{\n "id":'+str(i.id) + ',\n "nome":"'+str(i.nome)+'",\n "estado":"'+str(i.estado)+'",\n "municipio":"'+str(i.municipio)+'",\n "bairro":"'+str(i.bairro)+'",\n "numero":"'+str(i.numero)+'",\n "cep":"'+str(i.cep)+'",\n "telefone":"'+ str(i.telefone)+'"\n},'
s = s[:-1]
s = s + ']\n}'



Mas da pau, alguem pode me dar uma luz??
return HttpResponse(s, mimetype="text/javascript")




  


2. Re: Pegar elementos especificos de um objeto

Joao
stack_of

(usa Slackware)

Enviado em 17/11/2011 - 18:03h

A expressáo "dá pau" é muito vaga.
A melhor forma de encontrar o erro e resolver seu problema seria executar o servidor web em modo debug.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts