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

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

如何成功将函数引用传递给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 myviewFalse>>> v1.__module__'testproject.myapp.views'>>> myview.__module__'myapp.views'

如果将URL匹配更改为,会发生什么

r'^myview/$'


您是否尝试过使用视图名称?像

reverse ('myapp.myview')
什么?

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

from django.conf.urls.defaults import patternsurlpatterns = patterns ('',    (r'^/', 'myapp.urls'),)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5674966.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存