簡體   English   中英

模板中的 Django url kwargs

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

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