为什么Django认为我的查询字符串是空的?

时间:2017-06-08 18:36:01

标签: python django query-string

我在Django的一个视图中遇到了查询字符串问题。我已成功处理其他视图中的查询字符串,所以我不确定我在这里做错了什么。我把事情剥离到一个非常基本的观点,我仍然没有得到任何东西。

我的网址:

localhost/query_view/?foo=foo

我的模板:

<html>
    <head>
        <title>Title</title>
    </head>
    <body>
        <p>{{ query_string }}</p>
    </body>
</html>

我的观点:

def query_view(request):
    query_string = request.META['QUERY_STRING']
    return render(request, 'query_view.html', {'query_string': query_string})

我应该期待foo=foo显示在页面上,对吗?目前,我什么也没得到。

编辑: Django版本1.9.4,Python版本3.4.3

2 个答案:

答案 0 :(得分:2)

我会在返回之前放置一个调试器,以查看请求中的实际内容。但通常像request.GET.get('foo')之类的东西会让你得到你想要的东西。此外,如果foo实际为空,则可以提供默认值。 request.GET.get('foo', 'blah')

答案 1 :(得分:2)

尝试

 def query_view(request):
     query_string = request.GET.get('foo',None)
     print(query_string)
     return render(request, 'query_view.html', {'query_string': query_string})

并检查query_string值是否为None。

让我知道,如果它没有成功!

此外还提到你的django和python版本。