/home/
과 같은 URI가 주어지면이 기능과 일치하는보기 기능을 찾고 싶습니다. app.views.home
또는 단지 <app_label>.<view_func>
과 같은 형식이 바람직합니다. 이 기능을 제공 할 수 있습니까?요청 URI에서보기 기능을 가져 오시겠습니까?
12
A
답변
23
django에서 제공하는 resolve 메서드를 사용하여 함수를 사용할 수 있습니다. 반환 된 함수의 __module__
속성을 사용하여 앱 라벨을 가져올 수 있습니다. 그러면 project.app.views
과 같은 문자열이 반환됩니다. 이 같은 뭔가 :
from django.core.urlresolvers import resolve
myfunc, myargs, mykwargs = resolve("/hello_world/")
mymodule = myfunc.__module__
0
KillianDS's answer 바탕으로, 여기 내 솔루션입니다 :
이제from django.core.urlresolvers import resolve
def response(request, template=None, vars={}):
if template is None:
view_func = resolve(request.META['REQUEST_URI'])[0]
app_label = view_func.__module__.rsplit('.', 1)[1]
view_name = view_func.__name__
template = '%s.html' % os.path.join(app_label, view_name)
return render_to_response(template, vars, context_instance=RequestContext(request))
당신이 당신보기 funcs의 끝에서 return response(request)
를 호출 할 수 있고 자동으로 템플릿으로 app/view.html
을로드합니다 요청 컨텍스트를 전달하십시오.
3
Django 1.3 (2011 년 3 월) urlresolvers
모듈의 resolve
함수가 ResolverMatch
객체를 반환합니다. 보기 호출 가능 경로를 포함하여 해결 된 URL 일치의 모든 속성에 대한 액세스를 제공합니다.
>>> from django.core.urlresolvers import resolve
>>> match = resolve('/')
>>> match.func
<function apps.core.views.HomeView>
>>> match._func_path
'apps.core.views.HomeView'
관련 문제
- 1. 어떤 라이브러리를 가져 오시겠습니까?
- 2. total_form_count의 ID를 가져 오시겠습니까?
- 3. CKEditor 콘텐츠를 가져 오시겠습니까? - jQuery를
- 4. index 대신 document.styleSheets를 가져 오시겠습니까?
- 5. 다음 코드에서 'href'값을 가져 오시겠습니까?
- 6. Excel/XLS를 SSIS로 가져 오시겠습니까?
- 7. 현명한 데이터 행을 가져 오시겠습니까?
- 8. 프로세스 상태를 웹으로 가져 오시겠습니까?
- 9. Javascript를 사용하여 기본 미디어 플레이어를 가져 오시겠습니까?
- 10. Outlook에 Sharepoint 저장 URL을 가져 오시겠습니까?
- 11. MDF 파일을 SQL Server 2008로 가져 오시겠습니까?
- 12. Android 폰의 인쇄 화면을 가져 오시겠습니까?
- 13. SVN Tree Conflict - 파일을 가져 오시겠습니까?
- 14. 외래 키와 SQLAlchemy로 조명기를 가져 오시겠습니까?
- 15. MapXtreme2008을 사용하여 Ascii/Grid 파일을 가져 오시겠습니까?
- 16. BCP를 사용하여 IBM Timestamp를 가져 오시겠습니까?
- 17. 특정 카테고리의 첨부 파일이있는 게시물을 가져 오시겠습니까?
- 18. Pchar Delphi DLL을 C#으로 가져 오시겠습니까?
- 19. xml 파일을 통해 공유 지점으로 가져 오시겠습니까?
- 20. 다른 AppleScript로 AppleScript 메서드를 가져 오시겠습니까?
- 21. 자바 스크립트 : 브라우저 페이지로 데이터를 가져 오시겠습니까?
- 22. 다른 창에서 HTML 콘텐츠를 가져 오시겠습니까?
- 23. WPF treeview에서 FullPath를 가져 오시겠습니까? 예를 들어
- 24. jquery/JS의 uri LocalPath를 가져 오시겠습니까?
- 25. Matlab에서 구조체를 사용하여 Excel에서 데이터를 가져 오시겠습니까?
- 26. Umbraco - 최상위 섹션의 이름을 가져 오시겠습니까?
- 27. 특정 트위터 사용자의 트윗을 가져 오시겠습니까?
- 28. Javascript Associative Array의 슬라이스를 가져 오시겠습니까?
- 29. Android 계정에 구성된 계정의 이메일을 가져 오시겠습니까?
- 30. Android에서 캘린더 일정을 날짜로 가져 오시겠습니까?
이미 요청이있는 경우 해결 방법 대신 "request.resolver_match"를 수행하면됩니다. –