它不是一個內置的Django的東西,並需要一點點的黑客攻擊,但我以前做過這種事情。
您將需要將jQuery AJAX請求附加到公司選擇字段的onChange事件。當某人選擇一家公司時,您會查詢數據庫,並要求提供特定於該公司的部門清單。
編輯:
類似下面的JavaScript和Django會工作:
$('#id_company').change(function(){
$.POST('{% url some_url_name %}',
{
'company_id': $('#id_company').val()
},
function(data){
if(data.valid){
var d = '<select id="id_department" name="department">';
$.each(data.records, function(k,v){
d += '<option value="' + v.id + '">' + v.name +'</option>';
});
d += '</select>';
$('#id_department').html(d);
}
}, 'json'
);
});
def ajax_request(request, company_id):
if request.is_ajax() and request.method == 'POST':
data = simplejson.dumps(Department.objects.filter(company__id=company_id)
return HttpResponse(data, mimetype='application/javascript')
我會定義視圖的過濾器選擇公司的部門。 然後使用jQuery在公司更改時加載部門的組合。 – JMira 2011-03-18 14:29:09