request.is_ajax在模板中返回false

时间:2012-10-21 08:52:14

标签: python ajax django

我正在尝试在模板中进行conditionnal扩展:

{% extends request.is_ajax|yesno:"base_ajax.html,base.html" %}

在我看来:

def new(request):
    snippet_form = SnippetForm()
    return render_to_response('new.html', {
        'snippet_form': snippet_form,
    }, context_instance=RequestContext(request))

但是request.is_ajax总是返回false!

如果我在视图中调用request.is_ajax,则它包含良好的值。

def new(request):
    snippet_form = SnippetForm()
    ajax = request.is_ajax()
    return render_to_response('new.html', {
        'snippet_form': snippet_form,
        'ajax': ajax
    }, context_instance=RequestContext(request))

在我的模板中:

{% extends ajax|yesno:"base_ajax.html,base.html" %}

这是有效的,但我更喜欢使用第一种解决方案!

有什么想法吗?

(我正在使用jquery加载函数)

1 个答案:

答案 0 :(得分:2)

您是否启用了“请求”上下文处理器? 名为TEMPLATE_CONTEXT_PROCESSORS的列表中应包含此字符串:

django.core.context_processors.request

默认情况下已关闭。