[英]passing GET parameter from python view to template
就這么簡單,我在獲取GET參數d
的值時遇到了麻煩
我正在點擊類似的鏈接:
http://127.0.0.1:8000/Account/Site/d=mysite.com
該url
服務的view
是:
@login_required
def Site(request):
if request.user.is_authenticated():
# verify domain in url is associated with authenticated users account
DomainToScan = request.GET.get('d')
VerifyDomainAgainstDb = Tld.objects.filter(FKtoClient=request.user,domainNm=DomainToScan)
else:
HttpResponseRedirect("/Login/")
return render(request, 'VA/account/begin_site.html', {
'Site':Site,
'VerifyDomainAgainstDb':VerifyDomainAgainstDb
})
具體來說,這一行:
DomainToScan = request.GET.get('d')
的值DomainToScan
被輸出作為None
觀看Django模板時begin_site.html
我在這里做錯了什么?
謝謝!
更新:
urls.py
(r'^Account/Site/[?]d=[A-za-z0-9]{2,50}.[a-z]{1,3}$', Site),
由於某種原因,該網址與以下網址不匹配:
http://127.0.0.1:8000/Account/Site/?d=mysite.com
有什么原因嗎? Rubular說其有效
您沒有任何GET參數。 如果要將domain
作為GET參數,則鏈接應為http://127.0.0.1:8000/Account/Site/?d=mysite.com
注意?
。
(還要注意,您實際上需要返回 HttpResponseRedirect()
,而不僅僅是調用它:但是is_authenticated的整個檢查是毫無意義的,因為該函數用login_required裝飾,因此未經身份驗證的用戶甚至都不會進入該視圖。 )
嘗試:
@login_required
def Site(request, DomainToScan=None):
if request.user.is_authenticated():
# verify domain in url is associated with authenticated users account
VerifyDomainAgainstDb = Tld.objects.filter(FKtoClient=request.user,domainNm=DomainToScan)
else:
return HttpResponseRedirect("/Login/")
return render(request, 'VA/account/begin_site.html', locals())
urls.py
(r'^Account/Site/(?P<DomainToScan>[^/]+)/', Site),
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.