2011-08-13 1 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 

コードと周りいじるする場所のように任意の提案は、私のpythonに精通し、まだないです、私はそれを持っているコードの一部がエラーに

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

ローカルでさまざまな方法で実行してみましたか?

私のDjangoコードは、さまざまなサーバー環境(たとえばmod_wsgiとgunicorn vs manage.py runserver、werkzeugなど)では異なった反応をすることがあります。その点で、いくつかの異なるコードパスを試してみても問題ありません。

manage.py validatemanage.py shellのような管理コマンドもあります。doctestをビルドするときは後者をかなり参考にしています(これはPythonを初めて使う人にとっては非常にすぐにわかります賭けるだろう)。

幸運のベスト。

+1

シェルではどのようなことをする必要がありますか?私が作成したモデルを使用しようとしているだけで、何がないのですか? – thebeagle

+0

ええ - 包括的なユニットテストスイートがない場合(ほとんどの人が自分でプロジェクトを開始する方法です)、シェルはモジュールを単独でチェックできます。関連して、可能な限り、私はビューファンクションのシグネチャを 'def someview(request = None、[...])'と定義します.-そのようにして、 'someview'関数をインポートして、偽の要求オブジェクトを作成する。そのようなものはバグを追跡するのに役立ちます。 – fish2000

+0

また、次のような場合にインストールしてください:http://code.google.com/p/django-command-extensions/wiki/RunServerPlus - werkzeugデバッガでは、このようなトレースバックをAJAXデバッガで調べることができます法医学的な詳細。 – fish2000

関連する問題