2014-02-24 55 views
0

我得到了这样的观点功能全模板:Django的不希望包括在的HttpResponse

from django.http import Http404, HttpResponse 
from django.template import Context, loader 

from .models import Recipe 


def index(request): 
    recipes = Recipe.objects.all() 
    t = loader.get_template('recipes/index.html') 
    c = Context({'object_list': recipes}) 
    return HttpResponse(t.render(c)) 

但因为我要实现一些AJAX我不希望包括整个渲染模板在HttpResponse对象中,但只有所需的数据需要传递给AJAX成功函数。

我的问题是:如何使我的查看功能,以响应仅返回阿贾克斯所需的数据,而不需要包括整个模板(因为它是现在)

+0

ajax响应是否需要返回html或其他格式,如xml/json? –

+0

为了简单起见,我只是想以任何格式传递AJAX成功响应所需的数据。我不想传递整个HTML模板,查找所需的数据后,我认为这不是最合适的方式 – Rafa

+0

“所需数据”需要使用什么格式,html或xml/json?解决方案取决于这个答案。 –

回答

0

如果你想发送JSON你可以做到这一点。

from django.core import serializers 


def index(request): 
    recipes = Recipe.objects.all() 
    data = serializers.serialize('json', recipes) 
    return HttpResponse(data, content_type='application/json') 
+0

在这种情况下,哪个html模板将加载视图? – Rafa

+0

它将json响应返回给您的ajax调用。 – Manjunath