1
私は検索機能を持っており、検索結果をCSV形式でエクスポートすることもできます。私の検索機能は正常に動作します。しかし、エクスポート機能は、ユーザーが行った検索結果を収集することができません。私はこの問題の背後にある理由を理解することができますが、それに対処する方法を見つけることができません。 (グローバル変数の使用法は役に立つかもしれませんが、私はそれを使用したくない) マイ検索クエリ機能:CSVにエクスポートされた検索結果を取得する - django
def search_query(request):
result = publication.objects.all()
query = request.GET.get("query")
if query:
result = result.filter(
Q(title__icontains=query)
Q(timeStamp__icontains=query)
).distinct()
user_filter = UserFilter(request.GET, queryset=result)
return user_filter
マイサーチ機能:
def search(request):
title = "Advanced Search"
user_filter = search_query(request)
context = {
'title': title,
'filter': user_filter,
}
return render(request, "search.html", context)
私のエクスポート機能:
def export_search_csv(request):
data = search_query(request)
response = HttpResponse(content_type='text/csv')
response['Content-Disposition'] = 'attachment;filename=publications.csv'
writer = csv.writer(response)
writer.writerow(['Title', 'Published On'])
for item in data.qs:
writer.writerow([item.title, item.timeStamp.strftime("%b-%Y")])
return response
UPD:
H TML(輸出部):
<p>
<h5>
<a href="{% url 'publication:export_search_csv' %}?{{ request.GET.urlencode }}" class="btn btn-default" style="width: 150px; role="button">
<span class="glyphicon glyphicon-save"> </span> Export to CSV</a>
</h5>
</p>
メインurls.py:
urlpatterns = [
url(r'^', include('publications.urls', namespace='publication')),
]
出版/ urls.py:
urlpatterns = [
url(r'^export/csv/$', views.export_search_csv, name='export_search_csv'),
]
助けてください。
トレースバック(最新の呼び出しの最後):
File "/usr/local/lib/python2.7/dist-packages/Django-1.11-py2.7.egg/django/core/handlers/exception.py", line 41, in inner
response = get_response(request)
File "/usr/local/lib/python2.7/dist-packages/Django-1.11-py2.7.egg/django/core/handlers/base.py", line 217, in _get_response
response = self.process_exception_by_middleware(e, request)
File "/usr/local/lib/python2.7/dist-packages/Django-1.11-py2.7.egg/django/core/handlers/base.py", line 215, in _get_response
response = response.render()
File "/usr/local/lib/python2.7/dist-packages/Django-1.11-py2.7.egg/django/template/response.py", line 107, in render
self.content = self.rendered_content
File "/usr/local/lib/python2.7/dist-packages/Django-1.11-py2.7.egg/django/template/response.py", line 84, in rendered_content
content = template.render(context, self._request)
File "/usr/local/lib/python2.7/dist-packages/Django-1.11-py2.7.egg/django/template/backends/django.py", line 66, in render
return self.template.render(context)
File "/usr/local/lib/python2.7/dist-packages/Django-1.11-py2.7.egg/django/template/base.py", line 207, in render
return self._render(context)
File "/usr/local/lib/python2.7/dist-packages/Django-1.11-py2.7.egg/django/template/base.py", line 199, in _render
return self.nodelist.render(context)
File "/usr/local/lib/python2.7/dist-packages/Django-1.11-py2.7.egg/django/template/base.py", line 990, in render
bit = node.render_annotated(context)
File "/usr/local/lib/python2.7/dist-packages/Django-1.11-py2.7.egg/django/template/base.py", line 957, in render_annotated
return self.render(context)
File "/usr/local/lib/python2.7/dist-packages/Django-1.11-py2.7.egg/django/template/loader_tags.py", line 177, in render
return compiled_parent._render(context)
File "/usr/local/lib/python2.7/dist-packages/Django-1.11-py2.7.egg/django/template/base.py", line 199, in _render
return self.nodelist.render(context)
File "/usr/local/lib/python2.7/dist-packages/Django-1.11-py2.7.egg/django/template/base.py", line 990, in render
bit = node.render_annotated(context)
File "/usr/local/lib/python2.7/dist-packages/Django-1.11-py2.7.egg/django/template/base.py", line 957, in render_annotated
return self.render(context)
File "/usr/local/lib/python2.7/dist-packages/Django-1.11-py2.7.egg/django/template/loader_tags.py", line 72, in render
result = block.nodelist.render(context)
File "/usr/local/lib/python2.7/dist-packages/Django-1.11-py2.7.egg/django/template/base.py", line 990, in render
bit = node.render_annotated(context)
File "/usr/local/lib/python2.7/dist-packages/Django-1.11-py2.7.egg/django/template/base.py", line 957, in render_annotated
return self.render(context)
File "/usr/local/lib/python2.7/dist-packages/Django-1.11-py2.7.egg/django/template/defaulttags.py", line 458, in render
url = reverse(view_name, args=args, kwargs=kwargs, current_app=current_app)
File "/usr/local/lib/python2.7/dist-packages/Django-1.11-py2.7.egg/django/urls/base.py", line 91, in reverse
return force_text(iri_to_uri(resolver._reverse_with_prefix(view, prefix, *args, **kwargs)))
File "/usr/local/lib/python2.7/dist-packages/Django-1.11-py2.7.egg/django/urls/resolvers.py", line 497, in _reverse_with_prefix
raise NoReverseMatch(msg)
NoReverseMatch: Reverse for 'export_search_csv' not found. 'export_search_csv' is not a valid view function or pattern name.
試しました。 "export_search_csv 'が見つかりませんでした。' export_search_csv 'は有効なビュー関数またはパターン名ではありません。"私は自分の機能に何か変更を加える必要がありますか? – surajitM
@surajitMあなたはURLとビューをリンクしましたか? urls.pyとsearch.htmlコードを追加してください。 – neverwalkaloner
は私の答えをhtmlとurls.pyで更新しました – surajitM