Django 組み込みの Auth アプリを調べたところ、ビューが次のように多数に分割されていることがわかりました。
password_reset
、
password_reset_confirm
、
password_reset_done
、
password_reset_complete
ここでは、すべての単純なアクションに個別のビューがあります。すべてのアプリをそのように記述する必要がありますか?それとも 1 つのビューでより多くの URL を管理しても問題ないでしょうか?
Django 組み込みの Auth アプリを調べたところ、ビューが次のように多数に分割されていることがわかりました。
password_reset
、
password_reset_confirm
、
password_reset_done
、
password_reset_complete
ここでは、すべての単純なアクションに個別のビューがあります。すべてのアプリをそのように記述する必要がありますか?それとも 1 つのビューでより多くの URL を管理しても問題ないでしょうか?
経験則として、異なる URL は異なるビューで処理する必要があります。
Django 1.3 でクラスベースのビューが導入される前は、ビュー関数が多くのケースを処理しようとすると混乱が生じる可能性がありました。ただし、既存のビューをサブクラス化し、それらのビューの動作を再利用できるクラスベースのビューを作成できるようになりました。
たとえば (複数のゲームがあるサイトの場合)。
class GameView(View):
def game_method(self):
# compute things here
return data
class PuzzleGameView(GameView):
def get(self, request, *args, **kwargs):
data = self.game_method()
# do other things here
return HttpResponse("")
class SudokuGameView(PuzzleGameView):
pass
class ActionGameView(GameView):
pass
で定義されたメソッドはGameView
、サブクラスで呼び出して再利用できます。