我正在尝试通过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" );
}
当我通过视图发送字符串时,我现在收到警报消息,当我发送模型数据时,我没有收到任何警报消息。问题是什么?
答案 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");
},
});