2013-04-10 2 views
0

URL과 정확히 동일한 작업을 수행해야하는 클래스 기반 뷰 계층 구조가 있지만 여러 가지 이유로 수퍼 클래스 중 하나에 별도의 dispatch() 메서드가 있어야합니다. 뷰의 모든Django URL 패턴을 재사용해도 괜찮습니까? 그렇다면 어떻게?

즉 공통의 슈퍼 클래스는 URL이

/b/.../인가 된 경우 URL이 /a/...dispatchB() 인 경우 dispatchA()를 호출하는 dispatch() 방법을 가지고 그것을 확인 장고에 두 번 같은 패턴 (...)를 사용하는 다른 접두사를 가진 urlpatterns(). 추가 신용 들어

, 내가 뭔가를 이렇게 확실히 좋은 년대 dispatch()

답변

1

에서 확인 URL을 할 필요가 없습니다 후자의 패턴에 kwarg을 (같은 b = True)를 추가하는 방법을 어떤 생각. 당신은 패턴 후 사전을 지정하여 extra kwargs을 전달할 수 있습니다

(r'^a/foo/$', my_view, {'b': False}), 
(r'^b/foo/$', my_view, {'b': True}), 

또는 당신이 kwarg 같은 접두사 자체를 캡처하고 발송 방법에 그것을 확인할 수 있습니다.

+0

그래서'(r '^ a /', (foo), dict (a = True))'도 올바르게 작동해야합니까? – Kimvais

+0

물론, include와 함께 사용하는 것은 위의 동일한 링크에서 조금 더 자세히 설명합니다. –