簡體   English   中英

將GET參數從python視圖傳遞到模板

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM