[英]Django url kwargs in templates
以前我們一直在使用{{view.kwargs.kwarh_name}}
訪問 Django 模板中的kwargs
。
但是,令我驚訝的是,這在我的 django 3.2.4+ 中不起作用它是否已被刪除,上面的行有什么問題嗎?
注意:這里的 Kwargs 我的意思如下:給定 function 如下:
def GetSomething(request, code):
return render(request, "some template here")
現在,urlpatterns 會是這樣的,
import GetSomething from .views
app_name = "some_app_name_here"
urlpattern = [
path("link/<int:code>/", GetSomething, name="some_cool_name") #http:localhost/link/12345/
]
現在在 HTML/Django 模板或 Jinja2(無論您使用哪個)中,訪問此代碼將通過{{ view.kwargs.code }}
但碰巧這在 Django 3.2 中對我不起作用,有什么原因嗎?
希望我很清楚!
基於 class 的視圖的 get_context_data 方法將視圖作為視圖添加到上下文中。 如果您有一個基於 function 的視圖,它不會自動添加到上下文中。 這與 Django 版本 3.2.4+ 無關
因此,要么使用基於 class 的視圖,要么使用基於 function 的視圖並通過上下文變量將 kwargs 傳遞給模板。
def GetSomething(request, code):
context = {
#some values here
'code':code,
}
return render(request, "some template here", context)
然后您可以直接訪問模板中的上下文變量。
{{code}}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.