2012-04-05 2 views
0

나는 인증 응용 프로그램 내장 장고를 보면서 뷰가 많은 등에서 분할 것으로 나타났습니다 : 여기Django는 몇 개의 액션을 처리해야합니까?

password_reset, password_reset_confirm, password_reset_done, password_reset_complete

을 모든 간단한 작업이 뚜렷한 볼 수있다. 모든 앱을 이렇게 작성해야하나요, 아니면 하나의보기가 더 많은 URL을 관리하는 것이 좋을까요?

답변

0

어림짐작은 다른 URL로 다른 URL을 처리해야한다는 것입니다.

class-based views을 Django 1.3에 도입하기 전에보기 기능이 많은 경우를 처리하려고 시도하면 혼란을 겪을 수 있습니다. 그러나 이제는 기존 뷰를 서브 클래스 화하고 해당 뷰의 동작을 재사용 할 수있는 클래스 기반 뷰를 작성할 수 있습니다.

예를 들어 (여러 경기가있는 사이트의 경우). GameView에 정의

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 

방법은 전화를 서브 클래스에서 재사용 할 수 있습니다.

+0

PuzzleGameView를 렌더링 한 다음 get 메소드에서 일부 데이터를 처리하는 방법을 예로들 수 있습니까? 나는 그것을 작동시킬 수 없다. – aemdy

+0

뷰에 몇 가지 메소드를 추가했지만 정확히 무엇을 의미하는지 확신 할 수 없습니다. 뷰와 하위 클래스의 계층 구조가 있으면 부모 클래스의 메서드를 원하는대로 호출 할 수 있습니다. –

관련 문제