鉴于uri喜欢/home/我想要找到与之对应的视图函数,最好是以类似app.views.home或仅仅的形式<app_label>.<view_func>.有没有一个功能会给我这个?
Kil*_*nDS 30
您可以使用django提供的resolve方法来获取该函数.您可以使用__module__返回的函数的属性来获取应用程序标签.这将返回一个字符串project.app.views.所以像这样:
from django.core.urlresolvers import resolve
myfunc, myargs, mykwargs = resolve("/hello_world/")
mymodule = myfunc.__module__
Run Code Online (Sandbox Code Playgroud)
自Django 1.3(2011年3月)以来resolve,urlresolvers模块中的函数返回一个ResolverMatch对象.它提供对已解析URL匹配的所有属性的访问,包括视图可调用路径.
>>> from django.core.urlresolvers import resolve
>>> match = resolve('/')
>>> match.func
<function apps.core.views.HomeView>
>>> match._func_path
'apps.core.views.HomeView'
Run Code Online (Sandbox Code Playgroud)
从 Django 2.0 开始,django.core.urlresolvers模块已移至django.urls.
你需要这样做:
from django.urls import resolve
myfunc, myargs, mykwargs = resolve("/hello_world/")
mymodule = myfunc.__module__
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7381 次 |
| 最近记录: |