2014-04-23 5 views
0

장고는 {% url 'url_name' %} 또는 {{ obj_instance.get_absolute_url }}는 URL에 사용되는 실제 URL이 urls.py 나는 최근 백본 라우터를 사용하기 시작하고있어DRY URL 백본 라우터 및 장고 URL?

에 정의되어 있으며

routes: { 
'..some/url/path/:param_name/': 'func_name' 
} 

의 형태를 가지고 그것이 가능 백본 라우터에서 django의 url 관련 기능을 사용하면 url의 건조 함을 유지할 수 있습니까?

편집

나는 백본 노선에 the/whole/relative/path/from/root을 사용하고 있습니다.
이것은 백본에서 나쁜 관행입니까? (라우터를 처음 사용하는 경우입니다.)

다음에 설명 된대로 여러 개의 라우터에서 라우터를 사용하기 때문에 절대 경로가 필요합니다.

다음과 같은 3 개의 앱이 있습니다. 모든 musics의

  1. 목록 (/ 포럼) 앨범의 모든 musics의
  2. 목록 (/ 앨범/: album_id) 음악의
  3. 세부 (/ 앨범/: album_id/음악/: music_id)

사용자가 음악을 클릭하여 1 위를 차지하면 # 3으로 갈 수 있습니다. # 3에서 # 2 또는 # 1로 갈 수 있습니다.

답변

0

내 이해대로 Django에서는 도메인 다음에 중간에 들어가는 URL을 정의합니다. 백본 라우터에서는 "#"태그 다음에 나오는 URL을 정의합니다. 예를 들어, 인수없이 두 개의 다른 도메인을 입력하고 동일한 백본 라우터를 호출하면 둘 다 빈 URL로 포착됩니다.

var Router = Backbone.Router.extend({ 
    routes: { 
     "": "defaultFunc" //nothing after # (it doesn't care about the url before that) 
     "posts/:id": "getPost" // #posts/12 
    } 
}); 

각자의 노력이 필요하다고 생각합니다. Django는 서버 측 url을 인자로 사용하고 백본은 클라이언트 측을 사용합니다.

+0

입력 해 주셔서 감사합니다. "/ 전체/절대/경로"를 백본 경로로 사용하고 있습니다.이 방법이 좋지 않습니까? 질문을 업데이트했습니다. – eugene

+0

그리고 작동합니까? Django와 백본 사이에 작업을 어떻게 배포 할 것인가에 따라 다릅니다. :/album/mydisc/# song/mySong ->/album/mydisc의 템플릿이 장고 템플릿 엔진을로드하면 백본이 해당 노래에 대한 작업을 수행합니다. # 앨범/mydisc/노래/mySong – cor

+0

'# 1 # 3'(으)로 이동하고 '# 1'의 '뒤로 가기'가 표시되지 않는 경우를 제외하고는 아무 것도 작동하지 않습니다. # 1 페이지. 나는 서버 url에도 세 가지 URL을 모두 가지고있다. – eugene