2015-05-30 74 views
0

似乎沒有辦法在Django中捕獲整個查詢字符串,不是嗎?我只有捕獲各個參數的解決方案。添加或替換查詢字符串中的參數

所以,我怎麼能檢查查詢字符串中是否存在

我要檢查的查詢字符串本身是否存在(任何參數後「?」),如果是的話那麼更換或添加參數「參數1」到它。我怎樣才能做到這一點?例如:

localhost:8000 -> localhost:8000/?param1=a 
    localhost:8000/?param1=1 -> localhost:8000/?param1=bb 
    localhost:8000/?param1=1&param2=fdfd -> localhost:8000/?param1=333&param2=fdfd 

    localhost:8000/?param2=fdfd -> localhost:8000/?param1=1&param2=fdfd 

我該怎麼做?

回答

2

request.GET是查詢字符串,它符合字典界面。與所有Python容器一樣,布爾上下文中的空字典是False。所以你可以通過做if request.GET來檢查它是否爲空。

但是,在您的示例中,無論如何,您似乎總是替換param1,是否不需要先檢查它:只需設置值:request.GET['param1'] = 'whatever'

+0

'request.GET'默認是不可變的。你可以做'request.GET = request.GET.copy()'來繞過這個。 – knbk

+0

如何將request.GET轉換爲查詢字符串? –

+0

看這裏:https://docs.djangoproject.com/en/1.8/ref/request-response/#django.http.HttpRequest.META。有一個叫做QUERY_STRING的鍵,它應該在? –

相關問題