2011-08-13 2 views
1

저는 웹 사이트에서 새로운 직업을 얻었고 내 업무용 컴퓨터에서 개발 서버를 사용하려고합니다. 나는 모든 구성을 복사했는데, 무엇을하지 않고 여전히 오류가 발생하고 있습니다. 내가 첫 페이지를 표시 할 때개발 서버를 실행하는 동안 Django App에서 범위를 벗어난 인덱스를 나열합니다.

나는 예외가 여기에

python2.6/site-packages/Django-1.3-py2.6.egg/django/db/models/query.py in __getitem__, line 190 

을 제기 역 추적 정보입니다되고있다

list index out of range 

를 얻을. 여기

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 

내가 그 오류에 추가되어있어 코드의 일부는

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 

내가 파이썬에 익숙하지 여전히 코드로 주변에 바이올린 어디에 그렇게 제안을 오전 것 잘해라. 데이터베이스에 데이터가없는 것과 관련이 있다는 느낌이 들지만 물건을 추가하면 여전히 오류가 발생합니다.

도움을 주셔서 감사합니다.

자세한 정보가 필요하면 알려주세요.

+0

'결과 '에 실제로 * * 아무것도 포함되어 있지 않은지 확인해 보았습니까? –

답변

4

추적 문제는 무엇이 문제인지 알려줍니다. 홈페이지가 최고 일정을 표시하려고하고 있지만 데이터베이스에는 아무 것도 없습니다. 당신은 어떤 것을 창조해야합니다.

+1

나는 그것을 들여다 본 것이 믿을 수 없다. 도와 주셔서 감사합니다. – thebeagle

1

다른 방법으로 로컬에서 실행 해 보았습니까?

내 장고 코드가 다른 서버 환경 (예 : mod_wsgi과 gunicorn, manage.py runserver, werkzeug ... 등)에서 다르게 반응하는 것을 봤습니다. 그 점에서 몇 가지 다른 codepath를 시도해도 괜찮습니다. 또한

, 좋은 전성 검사는 manage.py validatemanage.py shell 등의 관리 명령입니다 - 당신은 파이썬의 새로운면의 doctest를 (만들 때 나는, 당신의 doctest에 대해 곧을 찾을 수 후자 꽤 의지 I 베팅하겠습니까?)

행운을 빈다.

+1

쉘에서 어떤 유형의 작업을 수행해야합니까? 내가 만든 모델과 사용하지 않은 모델을 사용하려고합니다. – thebeagle

+0

예 - 포괄적 인 단위 테스트 세트가 준비되어 있지 않은 경우 (대부분 사람들이 직접 프로젝트를 시작하는 방식입니다) 셸에서는 모듈을 개별적으로 확인할 수 있습니다. 이와 관련하여 가능할 때마다 필자는 view function signature를'def someview (request = None, [...])'로 정의한다 .- 그런 식으로'someview' 함수는 모의하지 않고 가져오고 테스트 할 수있다. 가짜 요청 개체를 그런 것들이 버그를 추적하는 데 도움이 될 것입니다. – fish2000

+0

또한 다음과 같이 설치할 수 있습니다. http://code.google.com/p/django-command-extensions/wiki/RunServerPlus - werkzeug 디버거를 사용하면 놀라운 추적 기능을 제공하는 AJAX 디버거를 통해 이와 같은 추적을 검사 할 수 있습니다. 법의학 세부 사항. – fish2000

관련 문제