gpt4 book ai didi

javascript - 具有即时过滤选项的 Django ModelChoiceField

转载 作者:行者123 更新时间:2023-11-29 10:24:07 25 4
gpt4 key购买 nike

我正在制作一个包含 3 个类的应用:员工、公司和部门。

当我编辑一个员工时,我需要了解他的公司,然后拥有一个包含所选公司所有部门的字段。但是,当我使用 ModelChoiceField 时,我会看到所有公司的所有部门。

这不是特权问题。对于部门字段的验证,它需要是所选公司的部门。但是,我不想对此进行验证,我只需要显示在上面的字段中选择的特定公司的部门。

因为这是一个客户端操作,我认为需要 javascript,所以我想知道它是否在 django 中以某种方式自动化,或者我需要为此目的下载 django-plugin 或 jquery-plugin。

感谢任何帮助,谢谢!

最佳答案

它不是 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')

关于javascript - 具有即时过滤选项的 Django ModelChoiceField,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5353201/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com