0

Django 組み込みの Auth アプリを調べたところ、ビューが次のように多数に分割されていることがわかりました。

password_resetpassword_reset_confirmpassword_reset_donepassword_reset_complete

ここでは、すべての単純なアクションに個別のビューがあります。すべてのアプリをそのように記述する必要がありますか?それとも 1 つのビューでより多くの URL を管理しても問題ないでしょうか?

4

1 に答える 1

0

経験則として、異なる 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、サブクラスで呼び出して再利用できます。

于 2012-04-05T08:30:36.827 に答える