Jquery + Django + Renderizar Form Ajax

295 views
Skip to first unread message

Vinnicyus Gracindo

unread,
Feb 9, 2012, 3:39:40 PM2/9/12
to django...@googlegroups.com
Alguém já tentou/conseguiu renderizar um form com Jquery Ui Modal com ajax?
Ou seja, Estou no meu index. Clico em efetuar login. Abre um janela Jquery Ui Modal com o Form de login dentro (porém esse form deve ser carregado quando clico em login por ajax).

Anderson

unread,
Feb 9, 2012, 3:43:21 PM2/9/12
to django...@googlegroups.com

Nao sou especialista em Django ate por comecei tem so uma semana e meia. 
mais acredito que so retornar html renderizado ja resolveria isso.



--
Anderson Dias Borges
Senior Analyst Developer
aquanode.com

Tu cumprirás o desejo do meu coração se eu Te buscar...
I can't see but I'll take my chances
To hear You call my name

Vinnicyus Gracindo

unread,
Feb 9, 2012, 3:58:58 PM2/9/12
to django...@googlegroups.com
exatamente isso. Tenho um generic_list_jquery.html que renderiza qualquer formulário no Jquery Ui Modal.
Então queria, ao clicar em login, chamar a views logar, que por sua vez carrega o form de login e dar um render para o generic_list_jquery. Queria fazer isso tudo sem sair da index. 

--
Django Brasil em Google Groups <http://groups.google.com.br/group/django-brasil>
Associe-se à Python Brasil e suporte nossa comunidade! <http://associacao.python.org.br/>

flit

unread,
Feb 9, 2012, 4:22:35 PM2/9/12
to django...@googlegroups.com
Tem uma forma 'suja' de se fazer isso...

Eh carregar o modal mas dar um 'hide' nele (carrega no head, e ja da um hide..)...

Ou seja ele fica carregado, mas o browser nao renderiza..

Quando eh chamado o button tu faz um unhide ou show no modal.

Ae o resto eh javascript puro...

Mas eh factivel.

[]s

Henrique

2012/2/9 Vinnicyus Gracindo <vini.g...@gmail.com>

Vinnicyus Gracindo

unread,
Feb 9, 2012, 8:24:28 PM2/9/12
to django...@googlegroups.com
fazer dessa forma, num precisa nem dar um hide. É só setar a propriedade do jquery como autoopen: false. O problema é carregar vários forms no index... isso que eu não queria fazer.

flit

unread,
Feb 9, 2012, 9:03:28 PM2/9/12
to django...@googlegroups.com
'Premature optimization is the root of all evil (or at least most of it) in programming.'

--- Donald Knuth

Abre mais o teu problema...
Quantos forms? sao para entrada ou so pra saida de dados?

Abre mais o teu cenario de problema, outros colegas podem lhe ajudar mais.
Mas com um melhor detalhe do cenario...

Vinnicyus Gracindo

unread,
Feb 9, 2012, 9:15:15 PM2/9/12
to django...@googlegroups.com
Tava com vontade de postar a frase de Knuth em alguma thread era? :)
Independente de ser 1 ou N forms, carregar eles na index seria uma forma "suja" como foi citado por você mesmo.

O que eu quero fazer é exatamente o que eu expliquei: Tenho minha página index. Tenho um template generic_list, que dado um form ele renderiza em Jquery Ui Modal Form (http://jqueryui.com/demos/dialog/). Quando eu clicar em Login, quero abrir  o formulário de login sem sair do index através de ajax. Exatamente como esse site faz (delivery.com).

Eu estudei o código html deles e eles utilizam o jquery. Exatamente o que eu utilizo. Porém na index eles não renderizam o formulário de login. O formulário só é renderizado quando clica em login.

flit

unread,
Feb 9, 2012, 9:35:52 PM2/9/12
to django...@googlegroups.com
Na verdade.....
Verdade.......

Eles tao criando o modal quando da o click...

<a onclick="sModal.create(); $.get('https://www.delivery.com/login.php?do_ajax=true', function(data) { var countRoles = $(data).find('.zzzrolezzzz').length; if(countRoles &gt; 0){ sModal.resize(countRoles * 116); } sModal.populate(data); }); return false;" href="https://www.delivery.com/login.php" class="padlink">LOGIN</a>



Resolvido?

Anderson

unread,
Feb 9, 2012, 9:38:00 PM2/9/12
to django...@googlegroups.com
Desculpa Vininicyus. seu nome e assim mesmo? da pra ver que desde inicio voce conhecia o seu problema e sabia da solucao acredito que so esta esperando alguem por um codigo pra vc.. entao vai la bem simples no jquery.com tem

$.ajax({
  url: "/sua-url",  
  success: function(data){
    $('#div-login').html(data).show();
  }
});

para nao ficar nessa . vou explicar :D

vc enviar por ajax a requisicao. que retorna o html renderizado e inseri em uma div e mostra a div.

Elyézer Mendes Rezende

unread,
Feb 10, 2012, 6:25:59 AM2/10/12
to django...@googlegroups.com
Olá,

Basta que você tenha uma view que retorna somente o html referente ao
form. Para auxiliar nesse trabalho vc pode consultar as referências
[1] e [2]

Quanto a lógica que você vai utilizar, seria interessante postar o
código (no dpaste.org por exemplo) de como você está tentando
implementar, pois assim ficar mais claro e fácil pro pessoal te
ajudar.

Até mais

[1] https://docs.djangoproject.com/en/dev/ref/request-response/#django.http.HttpRequest.is_ajax
[2] https://docs.djangoproject.com/en/dev/ref/contrib/csrf/#ajax

2012/2/10 Anderson <anderso...@gmail.com>:

> --
> Django Brasil em Google Groups
> <http://groups.google.com.br/group/django-brasil>
> Associe-se à Python Brasil e suporte nossa comunidade!
> <http://associacao.python.org.br/>

--
Elyézer Mendes Rezende
http://elyezer.com

Reply all
Reply to author
Forward
0 new messages