Campos CPF/CNPJ para models, forms + tipos CPF/CNPJ + Geradores de CPF/CNPJ

1,896 views
Skip to first unread message

Felipe Prenholato

unread,
May 5, 2010, 1:34:27 AM5/5/10
to django...@googlegroups.com
Boas a todos.

Inspirado pelo django.contrib.localflavors.br.forms, que alguns membros da comunidade participaram (a algum tempo) e pela necessidade de ter campos CPF e CNPJ fáceis de usar para os modelos das aplicações de onde trabalho eu comecei a criar os model fields para CPF / CNPJ.

Acabei adicionando mais empenho e de certa forma reescrevi parte do que já tínhamos no Django, adicionando ao Django tipos CPF / CNPJ (inspirados pelos tipos existentes no wiki do python brasil), Geradores de CPF / CNPJ, model fields e adaptei os form fields.

Foi criado o ticket http://code.djangoproject.com/ticket/13473 para a integração ao framework, e o projeto está hospedado no git-hub: http://github.com/chronossc/django/tree/ticket13473

Eu posto aqui pra anunciar os esforços e para quem queira contribuir, testar, criticar e/ou sugerir, o faça :). Eu não escrevi os testes (ainda não tenho experiência com eles) nem fiz as traduções, mas testei com um projeto para teste.

Todo este trabalho inicial está sendo feito com alvo na versão 1.3 do Django, mas baseado no truk da 1.2, pois além de querer manter a compatibilidade acredito que teremos isto estável bem antes da 1.3.

Exemplo de uso podem ser vistos no ticket :)

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

--
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/>

Felipe Prenholato

unread,
May 11, 2010, 11:32:07 AM5/11/10
to django...@googlegroups.com
O ticket 13473 foi atualizado, pois terminei com os fixes, testes e traduções. Quem quiser usar pode ficar a vontade :)

Gileno Alves

unread,
May 11, 2010, 1:53:01 PM5/11/10
to django...@googlegroups.com
Parabéns cara.

2010/5/11 Felipe Prenholato <phili...@gmail.com>



--
Abraços
Gileno Filho

Mário Neto

unread,
May 11, 2010, 1:55:16 PM5/11/10
to django...@googlegroups.com
Gostei de mais essa novidade, parabéns!
--
Att. Mário A. Chaves Neto
Designer / U.I. Engineer
MBA - Design Digital

EBertti

unread,
May 21, 2010, 2:39:52 PM5/21/10
to Django Brasil
foi para frente???

já existe um model field que já valida o cpf ou cnpj inserido???



On 11 maio, 14:55, Mário Neto <macndes...@gmail.com> wrote:
> Gostei de mais essa novidade, parabéns!
>
> Em 11 de maio de 2010 14:53, Gileno Alves <gascf....@gmail.com> escreveu:
>
>
>
>
>
> > Parabéns cara.
>
> > 2010/5/11 Felipe Prenholato <philipe...@gmail.com>
>
> > O ticket 13473 <http://code.djangoproject.com/ticket/13473> foi
> >> atualizado, pois terminei com os fixes, testes e traduções. Quem quiser usar
> >> pode ficar a vontade :)
>
> >> Em 5 de maio de 2010 02:34, Felipe Prenholato <philipe...@gmail.com>escreveu:
>
> >> Boas a todos.
>
> >>> Inspirado pelo django.contrib.localflavors.br.forms, que alguns membros
> >>> da comunidade participaram (a algum tempo) e pela necessidade de ter campos
> >>> CPF e CNPJ fáceis de usar para os modelos das aplicações de onde trabalho eu
> >>> comecei a criar os model fields para CPF / CNPJ.
>
> >>> Acabei adicionando mais empenho e de certa forma reescrevi parte do que
> >>> já tínhamos no Django, adicionando ao Django tipos CPF / CNPJ (inspirados
> >>> pelos tipos existentes no wiki do python brasil), Geradores de CPF / CNPJ,
> >>> model fields e adaptei os form fields.
>
> >>> Foi criado o tickethttp://code.djangoproject.com/ticket/13473para a

Felipe Prenholato

unread,
May 21, 2010, 5:10:57 PM5/21/10
to django...@googlegroups.com
Já sim EBertti. Você pode acompanhar melhor no github, eu ando a comitar alguns fixes.
Eu já tenho pronta uma lib standalone pra usar com django 1.1 também e vou botar ela no github assim que possível.

Ezequiel Bertti

unread,
May 21, 2010, 5:36:04 PM5/21/10
to django...@googlegroups.com
estou no aguardo então dos seus releases!!! 

vlw!

2010/5/21 Felipe Prenholato <phili...@gmail.com>



--
Ezequiel Bertti
E-Mail: ebe...@gmail.com
MSN: ebe...@hotmail.com
Cel: (21) 9188-4860

VÁ PARA BÚZIOS!!!
http://www.agh.com.br/
Ane Guest House

Felipe Prenholato

unread,
May 24, 2010, 10:34:02 AM5/24/10
to django...@googlegroups.com
Boas pessoal. A lib standalone para quem ainda não portou está aqui: 


Nela temos os br fields cpf/cnpj e um projeto cpfcnpj com o exemplo de como usar e com testes.

Quem puder usar e reportar bugs, enviar patches, etc, fico muito grato!

Rogério Carrasqueira

unread,
Sep 9, 2010, 10:34:55 AM9/9/10
to Felipe Prenholato, django...@googlegroups.com
Olá Felipe,

Tentei colocar no meu models.py


from django.db import models

from django.contrib.localflavor.br.forms import BRCNPJField, BRPhoneNumberField

Class MyClass (model.Models):

    cnpj = models.BRCNPJField()
    phone_number = models.BRPhoneNumberField()

O seguinte erro aconteceu:

File "/Users/rgcarrasqueira/DirectFlow/Projetos/MediaMonster/code/trunk/mediamonster/../mediamonster/core/models.py", line 24, in Customer
    cnpj = models.BRCNPJField()
AttributeError: 'module' object has no attribute 'BRCNPJField'

Idem para BRPhoneNumberField()

Onde será que errei?

[]'s


Rogério Carrasqueira

---
e-mail: rogerio.ca...@gmail.com
skype: rgcarrasqueira
MSN: rcarra...@hotmail.com
ICQ: 50525616
Tel.: (11) 7805-0074



Em 9 de setembro de 2010 11:22, Felipe Prenholato <phili...@gmail.com> escreveu:
O CPF/CNPJ são model fields :), e eles 'validam' se tiver problemas.

Em 9 de setembro de 2010 11:09, Rogério Carrasqueira
<rogerio.ca...@gmail.com> escreveu:
> Olá Pessoal!
>
> É possivel utilizar essas validações também no Models?
>
> []'s

>
> On May 24, 11:34 am, Felipe Prenholato <philipe...@gmail.com> wrote:
>> Boas pessoal. A lib standalone para quem ainda não portou está aqui:
>>
>> http://github.com/chronossc/django_localflavors
>>
>> Nela temos os br fields cpf/cnpj e um projeto cpfcnpj com o exemplo de como
>> usar e com testes.
>>
>> Quem puder usar e reportar bugs, enviar patches, etc, fico muito grato!
>>
>> Em 21 de maio de 2010 18:36, Ezequiel Bertti <eber...@gmail.com> escreveu:
>>
>>
>>
>> > estou no aguardo então dos seus releases!!!
>>
>> > vlw!
>>
>> > 2010/5/21 Felipe Prenholato <philipe...@gmail.com>
>> > E-Mail: eber...@gmail.com
>> > MSN: eber...@hotmail.com

>> > Cel: (21) 9188-4860
>>
>> > VÁ PARA BÚZIOS!!!
>> >http://www.agh.com.br/
>> > Ane Guest House
>>
>> > --
>> > 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/>
>>
>> --
>> Felipe 'chronos' Prenholato.
>> Linux User nº 405489
>> Home page:http://chronosbox.org/blog
>> Twitter:http://twitter.com/chronossc
>>
>> --
>> 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/>

Felipe Prenholato

unread,
Sep 9, 2010, 11:22:58 AM9/9/10
to Rogério Carrasqueira, django...@googlegroups.com
Note que meu patch não inclui ainda um modelfield para telefone, só
para cpf/cnpj, logo você precisa usar o já fornecido formfield no seu
model form (ou se quiser ajudar e melhorar o patch, escreva um
modelfield para telefone).

Ficaria mais ou menos assim:

# models.py
from django.db import models
from django.contrib.localflavor.br.models import BRCNPJField

Class MyClass (model.Models):
cnpj = BRCNPJField()
phone_number = models.CharField(max_length=12)


# forms.py
from django import forms
from django.contrib.localflavor.br.forms import BRPhoneNumberField
from .models import MyClass

class MyForm(forms.ModelForm):
phone_number = BRPhoneNumberField()
class Meta:
model = MyClass

Em 9 de setembro de 2010 11:34, Rogério Carrasqueira
<rogerio.ca...@gmail.com> escreveu:


> from django.contrib.localflavor.br.forms import BRCNPJField,
> BRPhoneNumberField
>
> Class MyClass (model.Models):
>
>     cnpj = models.BRCNPJField()
>     phone_number = models.BRPhoneNumberField()

--

Luiz Carlos Santos

unread,
Sep 9, 2010, 11:41:45 AM9/9/10
to django...@googlegroups.com
Galera,

Como faz para carrega uma máscara feita em Jquery no form BRPhoneNumberField()?

Luiz Carlos

Mário Neto

unread,
Sep 9, 2010, 11:45:53 AM9/9/10
to django...@googlegroups.com
Cria um arquivo js pras máscaras e coloca um import nos templates que precisarem ter, e seleciona da seguinte forma por exemplo para um campo chamado nome $('#id_nome').mask();

--
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/>

Luiz Carlos Santos

unread,
Sep 9, 2010, 1:22:33 PM9/9/10
to django...@googlegroups.com
Certo é possível carrega pela a template...

Agora como faz para carregado no momento que o form é carregador ou
seja pelo o form.py
um colega me falou que era pelo o classe media... mas não conseguir

Luiz Carlos

Reply all
Reply to author
Forward
0 new messages