通过AJAX在Django中发送模型数据
我正在尝试通过ajax在django中发送模型数据。
我的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 个回答
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");
},
});
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')
补充:我不太确定你能否在values()中使用get(),我在代码里用的是filter,这可能就是你代码不工作的原因。