List index out of range auf dem Django-App während der Ausführung der Entwicklungs-server
Ich habe gerade einen neuen job bei einer website und ich bin versucht zu bekommen, eine Entwicklung, server-arbeiten auf meinem computer in der Arbeit. Ich habe kopiert alle Konfigurationen und was nicht und ich bin noch immer Fehler.
Wenn ich versuche die Anzeige der ersten Seite bekomme ich
list index out of range
Ausnahme wird angehoben
python2.6/site-packages/Django-1.3-py2.6.egg/django/db/models/query.py in __getitem__, line 190
Hier ist die traceback-Informationen.
Environment:
Request Method: GET
Request URL: http://localhost:8000/
Django Version: 1.3
Python Version: 2.6.5
Installed Applications:
['django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.admin',
'django.contrib.sites',
'django.contrib.flatpages',
'django.contrib.markup',
'south',
'radio.frontend',
'radio.events',
'radio.library',
'radio.logs',
'radio.station',
'radio.staff',
'gravatar',
'djcelery',
'gunicorn']
Installed Middleware:
('django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.middleware.doc.XViewMiddleware',
'django.contrib.flatpages.middleware.FlatpageFallbackMiddleware')
Traceback:
File "/home/wluw/wluw/lib/python2.6/site-packages/Django-1.3-py2.6.egg/django/core/handlers/base.py" in get_response
111. response = callback(request, *callback_args, **callback_kwargs)
File "/home/wluw/wluw/wluw/radio/frontend/views.py" in home
20. schedule = Schedule.objects.get_current_schedule(now)
File "/home/wluw/wluw/wluw/radio/station/managers.py" in get_current_schedule
64. return results[0]
File "/home/wluw/wluw/lib/python2.6/site-packages/Django-1.3-py2.6.egg/django/db/models/query.py" in __getitem__
190. return list(qs)[0]
Exception Type: IndexError at /
Exception Value: list index out of range
Hier ist der code, den ich habe, dass die addition der Fehler
class ScheduleManager(models.Manager):
def get_current_schedule(self, when):
results = self.filter(start_date__lte=when, end_date__gte=when).order_by('-start_date')
#try:
#if(results[0]):
return results[0]
#else:
# return "null"
#
#except IndexError:
#raise self.model.DoesNotExist
def get_current_schedule_or_404(self, when):
try:
return self.get_current_schedule(when)
except self.model.DoesNotExist:
raise Http404
Ich bin noch nicht vertraut mit python also keine Vorschläge, wo rumfummeln mit dem code wäre Super.
Ich habe das Gefühl, es hat etwas zu tun mit der Datenbank nicht mit Daten gefüllt, aber ich habe in Sachen, und ich bekomme immer noch die Fehler.
Vielen Dank für jede Hilfe, die Sie geben kann.
Wenn Ihr mehr Infos braucht, lasst es mich einfach wissen.
- Haben Sie versucht, zu prüfen, dass
results
enthält eigentlich alles?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den traceback erzählt Sie, was das problem ist. Die homepage versucht, um die Anzeige der top-Zeitplan - aber Sie haben nicht alle in Ihrer Datenbank. Sie benötigen zu erstellen.
Haben Sie versucht, läuft es lokal auf unterschiedliche Weise?
Ich habe gesehen, mein Django-code reagieren anders in unterschiedlichen server-Umgebung (z.B. mit mod_wsgi vs gunicorn vs
manage.py runserver
vs werkzeug... usw). Es wird nicht Schaden, um zu versuchen ein paar verschiedene codepaths in dieser Hinsicht.Zudem eine gute sanity-check-management-Befehle wie
manage.py validate
undmanage.py shell
-- ich lehne mich auf die letzteren ein bisschen, wenn Gebäude doctests (die, wenn Sie neu in python, werden Sie das erfahren doctests sehr bald würde ich Wetten).Viel Glück.
def someview(request=None, [...])
-- die Weise, diesomeview
Funktion können importiert und getestet w/o mit zu verspotten, eine fake-Anfrage-Objekt. Dinge wie, dass wird Ihnen helfen, die Spur zu dem bug.