如何在django的dropdownlist中动态获取数据?

时间:2016-03-25 20:36:33

标签: python ajax django

我有两个下拉列表城市下拉列表区域下拉列表

这个项目正在开发python + Django frameowrk

当在django中使用以下概念时,它不起作用并在警报窗口中给出错误。

所以我的问题是,当我从第一个下拉列表中选择任何城市时,第二个下拉列表数据将使用ajax从数据库更新。也许在这里Ajax不起作用。我在ajax中并不完美,所以请阅读以下代码并解决我的问题。

谢谢。

在index.html中

<div class="input-field col l2 s12 m12">
    <select id="ddlcity" name="ddlcity">
        <option value="None" selected disabled>Choose City</option>
        {% for i in allcities %}
        <option value="{{ i.id }}">{{ i.city_name }}</option>
        {% endfor %}
    </select>
    <label>Select City</label>
</div>
<div class="input-field col l3 s12 m6">
    <select id="ddlarea" name="ddlarea">
        <option value="" disabled selected>Choose your area</option>
    </select>
    <label>Your Selected Area</label>
</div>

在index.html中使用的Ajax代码

$(document).ready(function () {
    $('#ddlcity').change(function () {
        var data_ = $('#ddlcity').val();
        $.ajax({
            type: "get",
            url: '/get/areadata/' + data_ + '/',
            data: data_,
            success: function (data) {
                $('#ddlarea').empty();

                $.each(data.d, function (key, value) {
                    $('#ddlarea').append($("<option></option>").val(value.AreaID).html(value.AreaName));
                });
            },
            failure: function (response) {
                alert(response.d);
            },
            error: function (jqXHR, textStatus, errorThrown) {
                alert(textStatus, errorThrown);
            }
        });
    });
});

在urls.py

url(r'^/get/areadata/(\d+)/$', 'main.views.getarea', name='getareadata'),

在views.py

def getarea(request, cityID):
    id = Area.objects.filter(city_id=cityID)
    id = id.all().order_by('area_name')
    return render(
        request, 'files/index.html', 
        context_instance=RequestContext(request, { 'allarea': id }))

0 个答案:

没有答案