簡體   English   中英

將變量傳遞給 Django 2 中的 href 模板

[英]Pass variable to href template in Django 2

我的views.py Django 2項目中有以下函數,我試圖將變量“stylefolder”從views.py傳遞到我的base.html模板,以便在我的鏈接標簽中動態獲取正確的href。

以下是我當前的代碼:

def home(request):
  products = Product.objects.order_by('-votes_total')
  paginator = Paginator(products, 10)
  page = request.GET.get('page')
  paged_listings = paginator.get_page(page)

  context = {
    'products':paged_listings,
    'stylefolder': 'cryptoblog/style.css'
  }
  return render(request,'home1.html', context)

在 base.html 文件中,我有以下代碼。

href="{% static '{{ stylefolder }}' %}">

問題是,當我查看頁面的 view:Source 部分時,我得到以下結果:

 <link rel="stylesheet" type="text/css" href="/static/%7B%7B%20stylefolder%20%7D%7D">

而不是低於預期的結果:

 <link rel="stylesheet" type="text/css" href="/static/cryptoblog/style.css">

我應該更改什么才能在 href 標記中獲取“/static/cryptoblog/style.css”?

由於您在模板標簽中,因此不應添加雙花括號{{ .. }} ,您可以改用變量名,例如:

<link href="{% static stylefolder %}" rel="stylesheet" type="text/css"">

你得到/static/%7B%7B%20stylefolder%20%7D%7D的原因是因為這是'{{ stylefolder }}'字符串的百分比編碼[wiki] 這是合乎邏輯的,因為看起來您傳遞了一個字符串文字

>>> from urllib.parse import unquote
>>> unquote('/static/%7B%7B%20stylefolder%20%7D%7D')
'/static/{{ stylefolder }}'

你可以這樣做: href="/static/{{ stylefolder }}">

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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