通过get方法将数据发送到Django中的TemplateView

时间:2016-08-15 07:11:05

标签: python ajax django

我正在使用openpyxl将查询集下载到.xlsx文件中,为此我需要使用TemplateView。我通过使用JQuery-Ajax调用TemplateView,我发送了一个我需要在查询集中用作参数的变量,但我不知道如何在TemplateView中使用该变量的值。

默认openpyxl覆盖GET方法,使用此方法:

def get(self, request, *args, **kwargs):

我试图通过此代码获取变量:

    context = self.get_context_data()
    valor=context["number"]

使用该代码我收到此错误:

500: KeyError at /the_url/
'numbers'

错误显示:

Request URL: http://127.0.0.1:8000/the_url/?number=34


Request information:
GET:
number = '34'

POST: No POST data

FILES: No FILES data

其中number是我通过Ajax发送的GET变量的名称。

那么,如何在TemplateView中获取GET变量值?

1 个答案:

答案 0 :(得分:2)

您应该可以通过self.request.GET.get('number')方法中的get_context_data访问您的变量。

模板视图示例(Python3版本)

class MyTemplateView(TemplateView):
    template_name = 'path/to/tempplate.html'

    def get_context_data(self, **kwargs):
        valor = self.request.GET.get('number')
        return super().get_context_data(**kwargs)