Skip to content

Instantly share code, notes, and snippets.

@kneipp
Created February 24, 2012 16:06
Show Gist options
  • Save kneipp/1901788 to your computer and use it in GitHub Desktop.
Save kneipp/1901788 to your computer and use it in GitHub Desktop.
Django: Utilização de Local Flavor no Admin
from django.contrib import admin
from django.contrib.localflavor.br.forms import BRZipCodeField
from django.forms import ModelForm
from app.customers.models import Customer, Contact
class ContactInline(admin.TabularInline):
model = Contact
extra = 2
class CepForm(ModelForm):
class Meta:
model = Customer
def __init__(self, *args, **kwargs):
super(CepForm, self).__init__(*args, **kwargs)
self.fields['postal_code'] = BRZipCodeField()
class CustomerAdmin(admin.ModelAdmin):
inlines = [ContactInline, ]
form = CepForm
admin.site.register(Customer, CustomerAdmin)
@henriquebastos
Copy link

class CepForm(ModelForm):
    postal_code = BRZipCodeField()

    class Meta:
        model = Customer

ModelForm é um Form normal... vc pode simplesmente redefinir um determinado FormField.

@kneipp
Copy link
Author

kneipp commented Feb 26, 2012

Atualizando como ficou:

  • models.py
...
from django.contrib.localflavor.br.forms import BRCPFField, BRCNPJField, BRZipCodeField
from django.forms import ModelForm

...
class BrFields(ModelForm):
    personal_document = BRCPFField(label='CPF')
    corporate_document = BRCNPJField(label='CNPJ', required=False)
    postal_code = BRZipCodeField(label='CEP')

    class Meta:
        model = Customer
  • admin.py
from django.contrib import admin
from app.customers.models import Customer, Contact, BrFields
...
class CustomerAdmin(admin.ModelAdmin):
    ...
    form = BrFields

admin.site.register(Customer, CustomerAdmin)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment