I am trying to deploy a search function to my website. It works well in the development environment, but in the production side I get the error message below (and my codes). I appreciate a lot if someone could help me again. I'm using PythonAnywhere in production, if that matters.
2018-10-19 13:13:13,629: Error running WSGI application
2018-10-19 13:13:13,630: IndexError: list index out of range
2018-10-19 13:13:13,630: File "/usr/lib/python3.6/site-packages/django/core/handlers/wsgi.py", line 142, in __call__
2018-10-19 13:13:13,630: response = self.get_response(request)
2018-10-19 13:13:13,630:
2018-10-19 13:13:13,630: File "/usr/lib/python3.6/site-packages/django/core/handlers/base.py", line 78, in get_response
2018-10-19 13:13:13,631: response = self._middleware_chain(request)
2018-10-19 13:13:13,631:
2018-10-19 13:13:13,631: File "/usr/lib/python3.6/site-packages/django/core/handlers/exception.py", line 36, in inner
2018-10-19 13:13:13,631: response = response_for_exception(request, exc)
2018-10-19 13:13:13,631:
2018-10-19 13:13:13,631: File "/usr/lib/python3.6/site-packages/django/core/handlers/exception.py", line 90, in response_for_exception
2018-10-19 13:13:13,631: response = handle_uncaught_exception(request, get_resolver(get_urlconf()), sys.exc_info())
2018-10-19 13:13:13,631:
2018-10-19 13:13:13,631: File "/usr/lib/python3.6/site-packages/django/core/handlers/exception.py", line 125, in handle_uncaught_exception
2018-10-19 13:13:13,632: return debug.technical_500_response(request, *exc_info)
2018-10-19 13:13:13,632:
2018-10-19 13:13:13,632: File "/usr/lib/python3.6/site-packages/django/views/debug.py", line 94, in technical_500_response
2018-10-19 13:13:13,632: html = reporter.get_traceback_html()
2018-10-19 13:13:13,632:
2018-10-19 13:13:13,632: File "/usr/lib/python3.6/site-packages/django/views/debug.py", line 333, in get_traceback_html
2018-10-19 13:13:13,632: c = Context(self.get_traceback_data(), use_l10n=False)
2018-10-19 13:13:13,632:
2018-10-19 13:13:13,632: File "/usr/lib/python3.6/site-packages/django/views/debug.py", line 264, in get_traceback_data
2018-10-19 13:13:13,632: frames = self.get_traceback_frames()
2018-10-19 13:13:13,633:
2018-10-19 13:13:13,633: File "/usr/lib/python3.6/site-packages/django/views/debug.py", line 422, in get_traceback_frames
2018-10-19 13:13:13,633: filename, lineno, 7, loader, module_name,
2018-10-19 13:13:13,633:
2018-10-19 13:13:13,633: File "/usr/lib/python3.6/site-packages/django/views/debug.py", line 383, in _get_lines_from_file
2018-10-19 13:13:13,633: context_line = source[lineno]
urls.py
from django.urls import path
from . import views
app_name = 'news'
urlpatterns = [
path('', views.Home, name='home'),
path('all/', views.All_news, name='all'),
path('world/', views.World, name='world'),
path('sport/', views.Sport, name='sport'),
path('economy/', views.Business, name='economy'),
path('politics/', views.Politics, name='politics'),
path('scitech/', views.SciTech, name='scitech'),
path('search/', views.Search, name='search'),
]
views.py:
from django.db.models import Q
def Search(request):
query = request.GET.get('q')
results = news.objects.filter(Q(title__icontains=query) | Q(publisher__icontains=query)).order_by('-created')
args = {'results': results}
return render(request, "news/search.html", args)
base.html:
<form method="GET" action="{% url 'news:search' %}" class="form-inline">
<input class="form-control mr-sm-2" type="search" name="q" value="{{request.GET.q}}" placeholder="search" aria-label="Search">
<button class="btn btn-light my-sm-0" type="submit">
Search </button>
</form>
search.html:
{% for news in results %}
<h4> <a href="{{ news.url }}" target="_blank">{{ news.title }}</a> </h4>
<p> <a href="{{ news.homepage }}" target="_blank">{{ news.publisher }}</a> | {{ news.subsection2 }} | {{ news.published }} </p>
<hr class="m-y-md" />
{% endfor %}