Skip to content

Instantly share code, notes, and snippets.

@davinirjr
Forked from taizarm/admin.py
Last active August 29, 2015 14:25
Show Gist options
  • Save davinirjr/d06a5417dd46261b6206 to your computer and use it in GitHub Desktop.
Save davinirjr/d06a5417dd46261b6206 to your computer and use it in GitHub Desktop.
$(document).ready(function(){
$("#id_state").change(function(){
carrega_cidades(0);
});
function carrega_cidades(id_selected) {
var arr;
$.get('/get_cidades/'+$("#id_state").val()+'/', function(data,status)
{
$('#id_city option').remove();
for (i in data) {
var obj = data[i];
if (id_selected == obj.id)
$("#id_city").append($('<option>').attr('value', obj.id).attr('text', obj.title).attr('selected', true).html(obj.title));
else
$("#id_city").append($('<option>').attr('value', obj.id).attr('text', obj.title).html(obj.title));
}
});
}
});
class MeuForm(forms.Form):
nome = forms.CharField(label='* Nome', max_length=255, required=True,)
state = forms.ModelChoiceField(queryset=State.objects.all(), label='Estado',)
city = forms.ModelChoiceField(queryset=City.objects.all(), label="Cidade",)
def __init__(self, *args, **kwargs):
super(MeuForm, self).__init__(*args, **kwargs)
self.fields['city'].choices = [('', '---------')]
class City(models.Model):
id = models.IntegerField(primary_key=True)
id_state = models.ForeignKey('State', db_column='id_state')
title = models.CharField(max_length=50)
iso = models.IntegerField()
iso_ddd = models.CharField(max_length=6)
created_at = models.DateTimeField(blank=True, null=True)
updated_at = models.DateTimeField(blank=True, null=True)
status = models.CharField(max_length=1)
def __unicode__(self):
return "%s" % self.title
class Meta:
managed = False
db_table = 'city'
class State(models.Model):
id = models.IntegerField(primary_key=True)
id_country = models.ForeignKey(Country, db_column='id_country')
id_region = models.IntegerField()
title = models.CharField(max_length=35)
letter = models.CharField(max_length=2)
iso = models.IntegerField()
created_at = models.DateTimeField(blank=True, null=True)
updated_at = models.DateTimeField(blank=True, null=True)
status = models.CharField(max_length=1)
def __unicode__(self):
return "%s" % self.letter
class Meta:
managed = False
db_table = 'state'
def get_cidades(request, id_estado):
if id_estado:
cidades = City.objects.filter(id_state=id_estado)
else:
cidades = []
response_data = [{'id': '', 'title': '---------'}]
for c in cidades:
response_data.append({'id': c.id, 'title': c.title})
return HttpResponse(
json.dumps(response_data),
content_type="application/json"
)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment