如何在Django中传递模板标记中的请求?

时间:2012-05-24 07:59:57

标签: django django-views django-templates

我正在Django开发基于Web的应用程序。我的应用程序充满了widget(不是Django-widgets),它用于使用Ajax加载不同类型的数据。例如,“学生”名称小部件正在加载用户列表,“教师”名称小部件正在加载学校中所有教师的列表。为此,我想到了一些疑虑:

  • 我正在使用templatetag(请查看代码http://codepad.org/2Ug9Ct3n)。在此代码中,当我执行if request and request.is_ajax():时,它会向我显示错误None object has no attribute ajax。问题是我无法正确包含请求。我已经对setting.py进行了更改,即

     TEMPLATE_CONTEXT_PROCESSORS = (
     'django.contrib.auth.context_processors.auth',
     'django.core.context_processors.static',
     'django.core.context_processors.request',
     'django.core.context_processors.media',
     )
    

  • 如果那个东西没有解决方案那么我可以在views.py中编写整个模板标签部分吗?如何?
  • 如果有任何可能性,请将它们作为答案发布!

    任何帮助都会很明显

    1 个答案:

    答案 0 :(得分:0)

    确保您的视图(您尚未发布)正在使用RequestContext呈现模板。如果您使用的是基于类的视图或render快捷方式,则会自动执行此操作。

    但是,如果您使用render_to_response,则需要执行以下操作:

    from django.template import RequestContext
    from django.shortcuts import render_to_response
    def some_view(request):
        # ...
        return render_to_response('my_template.html',
                                  my_data_dictionary,
                                  context_instance=RequestContext(request))