【发布时间】:2017-03-21 11:57:20
【问题描述】:
我正在尝试构建一个文档检索引擎。在输入查询时,用户会获得按相关性排序的文档列表。但是仅仅获取文档的名称并不是很有帮助。因此,我没有简单地显示表格,而是超链接了文档名称。锚标记内是文档的名称。当用户单击此链接时,我想使用文档名称向用户显示此文件的内容。所以基本上,当用户单击链接时,我想将标签中的内容传递给我的视图函数。以下是我的代码的一些相关部分。
.html 页面
<table class = "tab_results">
<tr>
<th>Project Name</th>
<th>Score</th>
</tr>
{% for each_pair in results%}
<tr>
<td name = 'project_name'><a id = 'doc_name' href = "doc_viewer/?query_name={{ each_pair.0|urlencode }}">{{ each_pair.0 }}</a></td>
<td>{{ each_pair.1 }}</td>
</tr>
{% endfor %}
</table>
我的urls.py 文件
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^$', views.index),
url(r'^index$', views.index),
url(r'^[?]query=', views.doc_scorer, name="doc_scorer"),
url(r'^doc_viewer[/]', views.doc_viewer, name="doc_viewer"),
]
最后是views.py 文件
def doc_viewer(request):
project_name = request.GET.get('project_name')
context = {'doc_data': search_query.doc_data(project_name)}
return render_to_response('search/doc_viewer_temp.html', context)
我按照此处给出的内容进行操作,但出现以下错误
TypeError at /search/doc_viewer/
cannot use label indexing with a null key
问题在于变量project_name 是NULL。我尝试了来自this 链接的建议,但无法使其发挥作用。知道我哪里出错了。提前致谢
【问题讨论】:
-
在 urls.py 中使用
r'^doc_viewer/$',在 html 中您使用query_name作为参数,但在视图中尝试获取project_name。这两个应该具有相同的名称。
标签: python django django-templates django-views