Busca Avançada na Admin do Django

60 views
Skip to first unread message

Gustavo Carvalho

unread,
Mar 24, 2014, 10:00:38 AM3/24/14
to python...@googlegroups.com, django...@googlegroups.com
Galera,

Quero fazer uma busca avançada no django admin.
Já sobrescrevi o template e inseri o form onde quero.
O meu problema é no processamento do form, a minha ideia era simplesmente sobrescrever o queryset no método get_queryset do ModelAdmin.
Quando submeto o form, sou redirecionado pra mesma view com uma flag de erro ?e=1.
Depois de uma boa procurada vi que isso acontece pela exceção IncorrectLookupParameters, que só me permite passar parâmetros no get que sejam fields do meu model, e no meu form existem campos que não são.

Tentei resolver usando o método lookup_allowed [1] pra ele aceitar os fields do meu form mas não funcionou.

Tentei sobrescrever o get_changelist e modificar o queryset do changelist [2], mas não consigo pegar os paramêtros da busca (por causa da exceção) então não consigo fazer o filtro.  

Atualmente estou tentando criar uma custom view no admin [3] e passando o changelist para o contexto só que ele vai "sem queryset", não lista nenhum objeto, tentei acessar manualmente o queryset e atribuir o valor que quero, eu dou um print pra ver se a atribuição funcionou e vejo que sim, só que nada de exibir no template.

Tem alguma maneira mais fácil? Tem como resolver do jeito que estou tentando?
Some help please,


Alguns links que pesquisei:

Valeu, att,

--
Gustavo de Carvalho Sales
Bacharelando em Ciência da Computação - UFPI
Programador Python - Agência 128 Bits
http://gtsalles.com.br/

'A Livre expressão é o que constrói uma nação independentemente da moeda e sua cotação'

Matheus Henrique Oliveira

unread,
Mar 24, 2014, 10:22:15 AM3/24/14
to django...@googlegroups.com, python...@googlegroups.com
Olá Gustavo, tudo bem?

Não sou expert em Django e não sou muito familiarizado com o Django Admin.
Não sei como está nomeando os campos do form, porém certa vez fiz algo parecido com o que está fazendo.
Minha solução foi nomear o campo da forma que e usuaria o lookup no queryset.
Ex.: O modelo Pessoa contém um atributo do modelo Filial (fk da filial), na busca preciso trazer as pessoas de determinada empresa, utilizando o atributo filial. No meu form o input ficou dessa forma:
<select name="filial__empresa">... empresas ...</select>. Dessa forma, ao executar a busca, consegui filtrar as pessoas pela empresa.

Espero ter entendido seu questionamento e repondido corretamente, ou de uma forma que lhe ajude.

Como disse não sou expert, porém foi um cenário que precisei implementar e que deu certo!


Abraço.


--
Você recebeu essa mensagem porque está inscrito no grupo quot;Django Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para django-brasi...@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.



--
Matheus Henrique Oliveira

Twitter: @matheusho42
+55 16 9-8170.0339

Abimael Junior

unread,
Mar 25, 2014, 1:28:12 AM3/25/14
to python...@googlegroups.com
Ei brother !? Qual a melhor ferramenta que você indica pra fazer interface em Python para DESKTOP !?



--
--
------------------------------------
Grupo Python-Brasil
http://www.python.org.br/wiki/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:
python-brasi...@googlegroups.com

---
Você recebeu essa mensagem porque está inscrito no grupo quot;Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasi...@googlegroups.com.

Para mais opções, acesse https://groups.google.com/d/optout.



--
Abimael Honório Correia Junior

Graduando do Curso de Bacharelado em Sistemas de Informação
Universidade Federal do Piauí - UFPI
Campus Senador Helvídio Nunes de Barros - CSHNB
Contato:       
          Telefones:           
           (89) 9403-2200
                  9904-8081
          E-mail:
          Gmail:  4b1j...@gmail.com
          Hotmail: abima...@hotmail.com
          Yahoo: abimael...@yahoo.com.br
          Twitter: http://twitter.com/#!/4b1junior
          Skype: junior.4b1

Reply all
Reply to author
Forward
0 new messages