Django的动态下拉从数据库列表(Django Dynamic Drop-down List fr

2019-08-02 15:16发布

我想开发一个Django应用程序,我想拥有的功能之一是动态的下拉列表...专为汽车品牌和型号......选择一个特定品牌将更新只与机型的型号列表使下摔倒....我知道这是可能的JavaScript或jQuery的(这将是我最好的选择,如果任何人有一个答案),但我不知道如何去做。

此外,我愿意制造商,型号,年份和系列是共同那么其他属性,如颜色,传输等是变量,这样一个只需要只为一个新的车辆进入品牌,型号,年份,以及系列。 任何想法,将不胜感激。

Answer 1:

你提到的是普通的三件事情,制造商,型号,年份,将是3个输入值。 当向服务器,包含细节的对象将被返回给调用页面。 该页面将会解析(使用JavaScript)对象的详细信息,并更新UI它们显示给用户。

从Django的一面,需要有拿3个输入,并返回输出的设备。 从客户端,需要有设施到3个输入传递到服务器,然后适当地解析服务器的响应。

有Django的一个REST API框架,它比较容易添加上述“API” - 活塞 。 使用活塞,你只需让该资源的URL,然后添加一个处理程序来处理它。 (你仍然需要撇去活塞文档,但是这应该给你的是什么样子的想法)

urls.py:
vehicle_details = Resource(handler=VehicleDetails)
url(r'^vehicle/(?<make>.*)/(?<model>.*)/(?<year\d{2,4}/(?P<emitter_format>[a-z]{1,4}), vehicle_details, name='vehicle_details'),

handler.py:
class VehicleDetails(BaseHandler):
    methods_allowed = ('GET',)
    model = Vehicles  #whatever your Django vehicle model is

    def read(self, request, *args, **kwargs):
        # code to query the DB and select the options
        # self.model.objects.filter()...            
        # Build a custom object or something to return

        return custom_object

这只是设置的URL www.yoursite.com/vehicle/[make]/[model]/[year]/json以JSON返回自定义数据对象的jQuery解析。

在客户端,你可以使用jQuery设置一个事件(绑定),这样,当所有3个下拉菜单有一个价值选择的,它会执行$获得()到API的URL。 当它得到这个结果回来了,它传递到jQuery的JSON解析器,并给出了自定义对象,作为一个JavaScript对象。 然后,该对象可用于填充更多的下拉菜单。

(大警告,我只是写了下面把我的头顶部,所以它注定不会被复制和粘贴。这只是针对一般的想法。)

<script type="text/javascript">

    // On document load
    $(function() {
        $('#dropdown_make').bind('change', checkForValues());
        $('#dropdown_model').bind('change', checkForValues());
        $('#dropdown_year').bind('change', checkForValues());
    });

    function checkForValues() {
        if ($('#dropdown_make').val() && $('#dropdown_model').val() && $('#dropdown_year').val())
            updateOptions();        
    }

    function updateOptions() {
        url = '/vehicle/';
        url += $('#dropdown_make').val() + '/';
        url += $('#dropdown_model').val() + '/';
        url += $('#dropdown_year').val() + '/';
        url += 'json/';
        $.get(url, function(){
            // Custom data object will be returned here
        })
    }
</script>



Answer 2:

这是不可思议的: 动态筛选下拉选项字段使用Django

他的问题:

“这里的情况是:我有车数据库品牌和型号当用户选择一个化妆,我想更新机型下拉与仅使相关的模型。所以我想使用Ajax。填充数据“。

你是不是同一个人? :)



文章来源: Django Dynamic Drop-down List from Database