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