您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

如何成功将函数引用传递给Django的reverse()函数?

如何成功将函数引用传递给Django的reverse()函数?

得到它了!!问题是有些进口是的myproject.myapp.views,有些只是进口的myapp.views。这使python模块系统非常混乱,以至于它不再将功能检测为同一对象。这是因为您的主线settings.py可能像这样一行:

ROOT_URLconf = `myproject.urls`

解决此问题,请尝试在shell会话中使用完全导入:

>>> from django.core.urlresolvers import reverse
>>> from myproject.myapp import views
>>> reverse(views.myview)
'/myview/'

这是调试会话的日志,适合任何感兴趣的未来读者:

>>> from django.core import urlresolvers
>>> from myapp import myview
>>> urlresolvers.get_resolver (None).reverse_dict
{None: ([(u'myview/', [])], 'myview/$'), <function myview at 0x845d17c>: ([(u'myview/', [])], 'myview/$')}
>>> v1 = urlresolvers.get_resolver (None).reverse_dict.items ()[1][0]
>>> reverse(v1)
'/myview/'
>>> v1 is myview
False
>>> v1.__module__
'testproject.myapp.views'
>>> myview.__module__
'myapp.views'

如果将URL匹配更改为,会发生什么r'^myview/$'

您是否尝试过使用视图名称?像reverse ('myapp.myview')什么?

urls.pyURLconf,还是在myapp应用程序中?需要从根到视图的完整路径才能解决它。如果是myproject/myapp/urls.py,则myproject/urls.py您需要这样的代码

from django.conf.urls.defaults import patterns
urlpatterns = patterns ('',
    (r'^/', 'myapp.urls'),
)
Go 2022/1/1 18:46:43 有456人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶