Aplicação plugável Django com modelos e widgets para os Municípios Brasileiros
$ pip install django-municipios
ou
$ easy_install django-municipios
ou baixar o código fonte do github e rodar "setup.py":
$ git clone git://github.com/znc-sistemas/django-municipios.git
$ cd django-municipios
$ python setup.py install
- jQuery (somente para utilizar widget de seleção de Municípios)
adicione a aplicação no INSTALLED_APP no seu settings.py
INSTALLED_APPS = (
...
'municipios',
...
)
Se for utilizar GIS adicione a variável MUNICIPIOS_GEO
:
MUNICIPIOS_GEO = True
No settings.py, antes de rodar o syncdb. Este parâmetro habilita os campos que armazenam dados Geográficos (GeoDjango).
Para carregar dados geográficos de todos os Municípios e UFs baixe o arquivo de fixture municipios_geo_900913.json.bz2 (27.5 MB), e carregue a fixture com
python manage.py loaddata municipios_geo_900913.json.bz2
from django import forms
from municipios.widgets import SelectMunicipioWidget
class FormEndereco(forms.Form):
municipio = forms.IntegerField(label=u"UF - Município", widget=SelectMunicipioWidget)
def teste(request):
form = FormEndereco()
return render_to_response('endereco/teste.html',
{'form':form,}, context_instance = RequestContext(request))
- Inclua o jquery no seu template, ou adicione ao media do seu Form.
- form.media - o widget depende de codigo js para funcionar o ajax
<script type="text/javascript" src="{{ STATIC_URL }}js/jquery.min.js"></script>
{{ form.media }}
{{ form }}
A partir da versão 0.8.0 é possível customizar o template utilizado para apresentar o widget. Os templates identificados pela aplicação são :
- municipio_field.html
- uf_field.html
e o nome da variável a ser substituída é {{wselect}}
ex.: de template para BootStrapTwitter
<div class="control-group">
<div class="controls"><label>Município</label> {{wselect}} </div>
</div>
adicione o HTML acima em um template dentro de por exemplo <app>/municipios/templates/municipios/municipio_field.html
Adicionar as urls da aplicação no arquivo definido pelo ROOT_URLCONF
do setings.py.
Nota
A partir da versão 1.4 do Django o prefixo da url pode ser qualquer um, nas versões anteriores é necessário utilizar o prefixo "muncipios_app".
(
...
url(r'^municipios_app/', include('municipios.urls')),
...
)
Para o funcionamento do widget de seleção de municípios em ambiente de produção é necessário utilizar o comando collectstatic do Static Files
.