django和ajax返回了数据

时间:2012-07-25 12:54:15

标签: jquery ajax django

我正在尝试实现一个非常简单的ajax调用,但是因为它是我的第一个调用,出了问题,我找不到原因。在用户从下拉列表中选择之后,我希望在相应的查询之后完成表单的另一个字段。这是我的代码: jquery的:

<script type="text/javascript">
    $(document).ready(function() {
        $('#id_veh_id1').bind('click', function () {
            var val1 =$("#id_veh_id1").val();
            $.get(""+val1+"/", function(data) {
                result=data.veh_length;
                document.getElementById('id_vlength').value=result;
            });
        });
    });
</script>

使用网址:url(r'^(?P<user_id>\d+)/main_Webrequests/(?P<veh_id>\d+)/$', 'auth.views.test', name='test')

并查看:

def test(request, veh_id, user_id):   
    message = {"veh_length": ""}
    if request.is_ajax():
        vehicle1 = Vehicles.objects.get(id = veh_id)
        veh_length = vehicle1.vlength
        message['veh_length'] = vehicle1.vlength
    else:
        message = "yoohoo"
        json = simplejson.dumps(message)
    return HttpResponse(json, mimetype='application/json')

当我使用veh_id而不是veh_length进行尝试时,一切似乎都运行良好,但也许我对整个事情并不了解。

2 个答案:

答案 0 :(得分:0)

我认为您需要在django代码中序列化您的json数据.....请查看此链接以供进一步参考..

https://docs.djangoproject.com/en/dev/topics/serialization/

答案 1 :(得分:0)

simplejson无法将Decimal转储给JSON,您应该可以通过以下方式解决这个问题:

message['veh_length'] = "%d" % vehicle1.vlength