paginação ou abas em form

394 views
Skip to first unread message

Diego Tostes

unread,
Apr 7, 2013, 5:38:52 PM4/7/13
to django...@googlegroups.com
Pessoal,

é possível paginar ou mesmo colocar em diferentes abas um formulário do django?

tenho um formulário com muitos campos e gostaria de paginar os mesmos ou colocálos em diferentes abas.

abs

diego

luan fonceca

unread,
Apr 7, 2013, 5:48:38 PM4/7/13
to django...@googlegroups.com
Recomendo em abas, pois fica na mesma página e tem apenas uma submissão e vc pode ir escondendo e mostrando usando um tabs do bootstrap[0] ou qualquer outro plugin js, como o Jquery Stepy[1]:
Algo do tipo:

<form>
    <div id="id_page_1">
        # Alguns Campos
    </div>
    <div id="id_page_2">
        # Outros Campos
    </div>
    <div id="id_page_3">
        # Outros Campos
    </div>

    <input type="submit">
</form>



--
Você está recebendo esta mensagem porque se inscreveu no grupo "Django Brasil" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para django-brasi...@googlegroups.com.
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.
 
 



--
  • Software Engineering student at the Universidade Federal do Rio Grande do Norte;
  • Front-end Designer and Developer;
  • Python/Django Developer at the multmeio.com.br.

Tarsis Azevedo

unread,
Apr 7, 2013, 8:01:47 PM4/7/13
to django...@googlegroups.com

Tarsis Figueredo Azevedo.
-------------------
Celular: (22) 81244668


2013/4/7 luan fonceca <luanf...@gmail.com>

Diego Tostes

unread,
Apr 8, 2013, 6:46:18 AM4/8/13
to django...@googlegroups.com
Tarsis,


Para mim não ficou muito claro aonde devo criar essa WizardView subclass.

Você tem um exemplo dessa implementação?


Luan,

da maneira que você recomendou, eu não poderia usar os Forms "prontos" do django certo? eu deveria criar os forms em html e enviar para o meu controler... eu queria uma soluçõa pronta do django...

abs


diego


luan fonceca

unread,
Apr 8, 2013, 8:40:08 AM4/8/13
to django...@googlegroups.com
Não Não, voce tem várias maneiras de exibir o seu forms no html, a parte de Controller fica normal:

Caso seu form seja assim:
class SeuForm(forms.ModelForm):
    class Meta:
        model = SeuModel

Imaginemos que você tem os campos, Nome, Idade, Email e Telefone:
no seu html:

<form>
    <div id="id_page_1">
        {{ seu_form.nome }}
        {{ seu_form.idade }}
    </div>
    <div id="id_page_2">
        {{ seu_form.email }}
    </div>
    <div id="id_page_3">
        {{ seu_form.telefone }}
    </div>

    <input type="submit">
</form>

Felipe Prenholato

unread,
Apr 10, 2013, 9:07:49 AM4/10/13
to Django Users BR
No esquema de TABS, vc pode usar um único form que deverá ter todos os campos, ou vários forms, um para cada aba. O problema é que o Django não da suporte a múltiplos forms nas generic views (não sei se usando form wizards funciona, nunca precisei) e mesmo usando o form prefix apenas um é usado pelo Django. Vc teria que fazer um 'bem bolado' na view pra suportar vários forms.

Felipe 'chronos' Prenholato.
Linux User nº 405489
Home page: http://devwithpassion.com | http://chronosbox.org/blog
GitHub: http://github.com/chronossc/ | Twitter: http://twitter.com/chronossc

Andrews Medina

unread,
Apr 10, 2013, 1:20:49 PM4/10/13
to django...@googlegroups.com
Olá,

2013/4/10 Felipe Prenholato <phili...@gmail.com>:
> No esquema de TABS, vc pode usar um único form que deverá ter todos os
> campos, ou vários forms, um para cada aba. O problema é que o Django não da
> suporte a múltiplos forms nas generic views (não sei se usando form wizards
> funciona, nunca precisei) e mesmo usando o form prefix apenas um é usado
> pelo Django. Vc teria que fazer um 'bem bolado' na view pra suportar vários
> forms.
>

O que ele tem que fazer primeiro é decidir se quer por tabs ou por "paginação".

Usando tabs, ele pode fazer como o chronos falou, usando apenas um
form e apenas mexendo na formatação visual do mesmo (com css e html).

Se optar por "paginação" a forma mais simples de manter o estado entre
vários forms em views diferentes no django é usar o form wizard.

Mas repetindo, primeiro é necessário decidir qual forma fará porque
cada forma levará há uma solução diferente.

Valeu!


--
Andrews Medina
www.andrewsmedina.com

Diego Tostes

unread,
Apr 10, 2013, 8:31:31 PM4/10/13
to django...@googlegroups.com
usando tabs, eu posso manipular o form com css ? onde eu consigo informações sobre os atributos htmls gerados pelo form do django?

abs

diego


luan fonceca

unread,
Apr 10, 2013, 8:37:28 PM4/10/13
to django...@googlegroups.com
O Django gera os name e o id automaticamente, você pode adiciar outros atributos aos Widgets (Classes que representam esses elementos, select, input, textearea...)

se você tem seu ModelForm:

class SeuForm(forms.ModelForm):
    class Meta:
        widgets = {
            'descricao': forms.Textarea(attrs={"rows": "4"}),
            'nome': forms.TextInput(attrs={
                "class": "campo_de_texto", 
                '"pseudo_ atributo": "valor_do_pseudo_ atributo"
            '}),
    }


Então no elemento Descricao, que é um <Textarea> será setado o atributo rows,
e no elemento Nome, que é um Input text, será setado a class e um outro atributo qualquer

luan fonceca

unread,
Apr 10, 2013, 8:38:11 PM4/10/13
to django...@googlegroups.com
Segue a documentação oficial do django;

Andrews Medina

unread,
Apr 10, 2013, 8:52:29 PM4/10/13
to django...@googlegroups.com
Olá,

2013/4/10 Diego Tostes <tostes...@gmail.com>:
> usando tabs, eu posso manipular o form com css ? onde eu consigo informações
> sobre os atributos htmls gerados pelo form do django?
>

Na documentação oficial tem uma área sobre isso:
https://docs.djangoproject.com/en/1.5/topics/forms/#customizing-the-form-template

Diego Tostes

unread,
Apr 11, 2013, 9:23:08 AM4/11/13
to django...@googlegroups.com
valeu pessoal!
agora é estudar...

abs

diego


Reply all
Reply to author
Forward
0 new messages