django orm级联_django+jquery 实现级联选择菜单
最近在做一個(gè)基于django框架的項(xiàng)目,需要實(shí)現(xiàn)級(jí)聯(lián)選擇菜單,比如省-市-區(qū),記錄下來(lái),希望能幫助碰到同樣問(wèn)題的人。
--------------------------------------------------------------------------------------------
無(wú)代碼無(wú)真相,直接上代碼:
js代碼:
function getCityOptions(province_id){
$.ajax({
type: "GET",
url: "/getCityList?provinceID="+province_id,
dataType:'json',
success: function(data,textStatus){
var citySelect = document.getElementById("id_city");
for ( var i=citySelect.options.length-1; i>-1; i--){
citySelect[i] = null;
}
if(data.length > 0) {
$("#id_city").show();
for(i=0;i
citySelect.options[i] = new Option();
citySelect.options[i].text = data[i].label;
citySelect.options[i].value = data[i].text;
}
}else
$("#id_city").hide();
}
})
}
模板代碼:
省市:
{{form.province}}
{{form.city}}
Form.py:
provinces = Province.objects.all()
PROVINCE_CHOICES = []
for province in provinces:
PROVINCE_CHOICES.append([province.id, province.provinceName])
class myForm(forms.Form): province = forms.ChoiceField(widget = forms.Select(attrs={'class':'select', 'onChange':'getCityOptions(this.value)'}), choices = PROVINCE_CHOICES, label= u'選擇省') city = forms.ChoiceField(widget = forms.Select(attrs={'class':'select', 'onChange':'getDistrictOptions(this.value)','style':'display:none'}), label = u'選擇市')
model.py:
class Province(models.Model):
provinceName = models.CharField(max_length = 20)
class City(models.Model):
cityName = models.CharField(max_length = 20)
provinceID = models.ForeignKey(Province)
view.py
def city_list(request):
city_list = []
province = request.GET['provinceID']
citys = City.objects.filter(provinceID = province)
for city in citys:
c = {}
c['label'] = city.cityName
c['text'] = city.id
city_list.append(c)
return HttpResponse(simplejson.dumps(city_list), mimetype='application/json')
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的django orm级联_django+jquery 实现级联选择菜单的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 发那科冲压直线搬运机器人_行业应用 |
- 下一篇: qmoc文件_手动生成MOC文件