2014-01-12 3 views
0

장고 {% url %}에서 js 변수를 전달하려고했지만 성공하지 못했습니다. D3 막 대형 차트를 만들었고 각 막대를 장고로 렌더링 한 다른 페이지에 연결하고 싶습니다. 페이지가 잘 작동하고 정적 데이터 (모든 막대가 동일한 페이지로 이동)가 잘 작동합니다. js 변수를 어떻게 추가해야합니까?NoReverseMatch django URL의 js 변수

감사합니다.

+0

본 [이 질문] (http://stackoverflow.com/questions/8460265/get-a-variable-from-url-parameter-using-javascript)? –

+0

반대쪽을하려고합니다. 장고 템플릿 URL 변수에 js 변수 값 넣기 {% url 'some_page'js_variable %} –

+0

[이 질문에 (http://stackoverflow.com/questions/4591525/is -it-possible-to-pass-query-parameters-djangos-url-template-tag를 통해)가 도움이 될 것입니다. –

답변

0

다음을 수행 할 수 없습니다. {% url %} 태그의 결과는 서버 측에서 컴파일되지만 자바 스크립트는 클라이언트 측에서 실행됩니다.

AJAX 엔드 포인트를 사용하여 {% url %} 태그의 기능을 제공 할 수 있습니다. reverse()을 실행하는 뷰를 작성하고 결과를 JSON 응답으로 리턴하십시오. 그런 다음 매개 변수를 전달하고 Javascript를 사용하여 결과로 무언가를 할 수 있습니다. 아주 단순한 예 :

urls.py

url(r'^posts/(?P<pk>\d+)$', 'app.views.post', name='post_view'), 
url(r'^url$', 'app.views.url_endpoint_view', name='url_endpoint') 

views.py

import json 
from django.http import HttpResponse 

def url_endpoint_view(request): 
    name = request.GET.pop('name') 
    data = {'url': reverse(name, kwargs=request.GET)} 
    return HttpResponse(json.dumps(data), content_type='application/json') 

템플릿 :

<a href="#" id="post_link">Dynamic link to a post</a> 

자바 스크립트 :

$.get('/url?name=post_view&pk=5', function(data) { 
    $('#dynamic_link').attr('href', data.url) 
}); 
+0

고마워! 그 점을 인정하는 것은 실망 스럽습니다. JS if 문 목록을 사용하여 문제를 해결했습니다. –