使用下面的Django代碼時,在將url關鍵字傳遞給模板時出現問題。Django的URL關鍵字
views.py
def index(request,username):
return render(request,'myaccount.html')
從項目名稱的文件夾urls.py從我的帳戶應用
urlpatterns = patterns('',
url(r'^(?P<username>[a-zA-Z0-9]+)/$','myaccount.views.index',name='myaccount'),
)
的問題是,
urlpatterns = patterns('',
url(r'^myaccount/',include('myaccount.urls')),
)
urls.py爲什麼當我用下面的它顯示的HTML代碼/myaccount/Jerry/
myaccount.html
{% url 'myaccount' 'Jerry' %}
但它顯示錯誤當我通過關鍵字?
myaccount.html
{% url 'myaccount' username %}
NoReverseMatch at /myaccount/Jerry/
Reverse for 'myaccount' with arguments '('',)' and keyword arguments '{}' not found.
當我通過變量名這樣的錯誤得到修正:
def index(request,username):
return render(request,'myaccount.html',{'username':username})
但是,有沒有更快的方法?
你會用更快的方式來闡述你的意思嗎?這是經過驗證的內容還是用戶名是別的? –
@PaulRenton這是關於在包含'?P'的任何URL中獲取一個名爲'用戶名'的變種。它不需要登錄。 –
zurfyx
好吧讓我知道如果我的修改答案是你正在尋找的 –