我试图从一个url中捕获2个slug/变量,将它们传递给视图,然后使用视图将它们传递给模板。你知道吗
我电话里的相关线路网址.py地址:
url(r'^docs/(?P<ver>)[-\w]+/(?P<name>)[-\w]+/$', views.sphinxdoc),
我的视图.py地址:
from django.shortcuts import render
def sphinxdoc(request, ver, name):
context = {'ver': ver, 'name': name}
return render(request, 'sphinx-documentation.html', context)
我试图基于ver
和name
值更改src
的<iframe>
url,如下所示:
<iframe src="{% static 'docs/'|add:ver|add:'/'|add:name|add:'/_build/html/index.html' %}"></iframe>
在浏览器中查看时,我收到一个错误消息说'docs///_build/html/index.html'
找不到。模板变量“ver”和“name”似乎从未设置,因此呈现为空字符串。如何允许从views.sphinxdoc
函数设置这些变量?你知道吗
我想我会把解决方案贴在这里给其他可能遇到这个问题的人。你知道吗
我不知道为什么,但是当拉入
ver
和name
作为函数参数时,它的变量类型没有被设置为string
。为了解决这个问题,我将变量转换成字符串,如下所示:从django.com快捷方式导入渲染
这解决了这个问题。你知道吗
编辑:另外,你可以简化做在线字符串转换。。。你知道吗
改变
urls.py
如下:因为
name
slug中可能有“-”,所以这不太管用。相反,我用了这个:相关问题 更多 >
编程相关推荐