我的views.py Django 2项目中具有以下功能,并且我试图将views.py中的变量“ stylefolder”传递给我的base.html模板,以便在链接标记中动态获取正确的href。 / p>
下面是我当前的代码:
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”,我应该怎么做?
答案 0 :(得分:1)
由于您位于 template标记中,因此不应添加双大括号{{ .. }}
,而可以使用变量名,例如:
<link href="{% static stylefolder %} rel="stylesheet" type="text/css"">
获得/static/%7B%7B%20stylefolder%20%7D%7D
的原因是因为这是'{{ stylefolder }}'
字符串的percent-encoding [wiki]。这是合乎逻辑的,因为看起来您传递了字符串 literal :
>>> from urllib.parse import unquote
>>> unquote('/static/%7B%7B%20stylefolder%20%7D%7D')
'/static/{{ stylefolder }}'
答案 1 :(得分:1)
您可以执行以下操作:
href="/static/{{ stylefolder }}">