0

我查看了 Django 内置的 Auth 应用程序,并注意到视图分为许多:

password_reset, password_reset_confirm, password_reset_done, password_reset_complete

在这里,每一个简单的动作都有不同的视角。所有的应用程序都应该这样写,还是一个视图可以管理更多的 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 回答