URL から ID を抽出し、django モデル API に渡すことで、オブジェクト (クラブ) の詳細をページにリストしたいと考えていました。そのIDがデータベースに存在する場合に機能しています。しかし、存在しない URL に ID を指定しようとすると、モデル API で次のエラーが発生します。
club = Club.objects.get(id=8) トレースバック (最新の呼び出しが最後): ファイル ""、1 行目、ファイル "/usr/local/lib/python2.7/dist-packages/django/db/models 内/manager.py"、131 行目、get return self.get_query_set().get(*args, **kwargs) ファイル "/usr/local/lib/python2.7/dist-packages/django/db/models/ query.py"、366 行目、get % self.model._meta.object_name 内) DoesNotExist: クラブに一致するクエリが存在しません。
そのため、このエラーの例外ハンドラーをビューに追加しました。コードは次のとおりです。
def club_detail(request, offset):
try:
club_id = int(offset)
club = Club.objects.get(id=club_id)
except (ValueError, DoesNotExist):
raise HTTP404()
return render_to_response('home/club_detail.html', {'club': club }, context_instance = RequestContext(request))
しかし、DoesNotExist エラーをキャッチしておらず、代わりにブラウザで NameError を返しています。
NameError at /club/8/
global name 'DoesNotExist' is not defined
Request Method: GET
Request URL: http://127.0.0.1:8000/club/8/
Django Version: 1.4.1
Exception Type: NameError
Exception Value:
global name 'DoesNotExist' is not defined
どうすればそれを機能させることができますか?前もって感謝します