當前位置:編程學習大全網 - 源碼下載 - 如何在Django Admin後臺添加省市兩級聯動下拉列表?

如何在Django Admin後臺添加省市兩級聯動下拉列表?

是的,但是過程有點復雜。以下代碼僅供參考,請自行調整。

1.定義數據源,這裏有壹個簡單的定義,比如settings.py

地點= { "浙江":["杭州"],"寧波"],"湖北":["武漢"]}

2.models.py

COUNTRY = [(key,key)用於排序(設置中的鍵。LOCATION.keys())]

類公司(車型。型號):

國家=型號。CharField(max_length=50,null=True,blank=True,verbose_name=_("Country "),choices=COUNTRY)

狀態=模型。CharField(max_length=50,null=True,blank=True,verbose_name=_('State '))

3.管理. py

類CompanyAdminForm(forms。模型表單):

State = MyChoiceField(label = _(' State '),required=False)

定義位置(自身):

導入json

返回json.dumps(設置。位置)

def __init__(self,*args,**kwargs):

ins = kwargs.get('instance ')

超級(CompanyAdminForm,self)。__init__(*args,**kwargs)

state = self.fields['state']

如果ins和ins.country:

state.choices = [(item,item) for item in settings。LOCATION.get(ins.country)]

類別元:

型號=公司

類CompanyAdmin(admin。ModelAdmin):

form = CompanyAdminForm

4.模板/admin/app/company/change _ form . html

復制原來的change_form.html內容,添加到合適的地方(自己寫js代碼)。

& ltscript type = " text/JavaScript " & gt;

var LOCATION = { { adminform . form . locations | safe } };

var $ = django.jQuery

$(文檔)。ready(function(){

$('#id_country ')。change(function(){

var國家=$(本)。val();

$('#id_state ')。empty();

如果(國家){

var state =位置[國家];

var I;

for(I = 0;我& lt狀態.長度;i++){

var v = state[I];

$('#id_state ')。追加(" & lt選項值='" + v + " ' >+v+ " & lt;/option >;");

}

}否則{

$('#id_state ')。追加(" & lt選項值=“”>+"-"+" & lt;/option >;");

}

});

});

& lt/script & gt;

  • 上一篇:springmvc怎麽用xml開發
  • 下一篇:源代碼選股公式
  • copyright 2024編程學習大全網