在Django中通过AJAX发送模型数据

时间:2014-05-08 05:30:32

标签: jquery python ajax django

我正在尝试通过django中的ajax发送模型数据。

我的view.py是这样的。

from django.core import serializers
def country(request):
    country = NewTable.objects.get(id=1)
    data = serializers.serialize('json',country)
    return HttpResponse(data,mimetype='application/json')

我的url.py就像这样

from django.conf.urls import patterns, url
from myapp import views

urlpatterns = patterns('',
url(r'^$', views.index, name='index'),
url(r'^country/$', views.country) 

)

我的模板就像这样

    function Country(){

    $.get('/myapp/country', function(data) {
    alert("hello");
}, "json" );

}

当我通过视图发送字符串时,我现在收到警报消息,当我发送模型数据时,我没有收到任何警报消息。问题是什么?

2 个答案:

答案 0 :(得分:1)

我有类似的问题,而不是django的序列化器,我转而使用json.dumps,现在一切正常。

view.py

import json
def country(request):
    country = NewTable.objects.filter(id=1).values()
    return HttpResponse(json.dumps(country),content_type='application/json')

编辑:我不确定你是否可以将get()用于值(),我在我的代码中使用过滤器,这可能就是你的工作不起作用的原因

答案 1 :(得分:1)

我找到了解决方案

view.py

from django.core import serializers
import json
    def country(request):
    obj_json = serializers.serialize('json', NewTable.objects.filter(id=1) )
    obj_list = json.loads( obj_json )
    json_data = json.dumps( obj_list )
    return HttpResponse( json_data, mimetype='application/json' )

模板

$.ajax({
type: "GET",
dataType: "json",
url:"/myapp/country",
success: function(data)
{
    alert("Hello");
},

});