在django中使用django.core.urlResolver.reverse时出现弃用警告
我在基于类的视图中使用以下代码在django中使用django.core.urlResolver.reverse时出现弃用警告,django,url,deprecated,Django,Url,Deprecated,我在基于类的视图中使用以下代码 from django.core.urlresolvers import reverse_lazy url = reverse('url_name') url.py如下所示 from django.conf.urls import patterns, url from myapp import views urlpatterns = patterns('', url(r'^$', views.TestView.as_view(), name='ur
from django.core.urlresolvers import reverse_lazy
url = reverse('url_name')
url.py
如下所示
from django.conf.urls import patterns, url
from myapp import views
urlpatterns = patterns('',
url(r'^$', views.TestView.as_view(), name='url_name'),
)
这样做时,我得到了一个弃用警告:
DeprecationWarning: Function-based generic views have been deprecated; use class-based views instead.
DeprecationWarning
警告出现在'django/views/generic/simple.py:8'上`
下面是一个堆栈,以查看什么形状:
-> return urlresolvers.reverse('url_name')
/home/vagrant/.virtualenvs/wfp/lib/python2.5/site-packages/django/core/urlresolvers.py(476)reverse()
-> return iri_to_uri(resolver._reverse_with_prefix(view, prefix, *args, **kwargs))
/home/vagrant/.virtualenvs/wfp/lib/python2.5/site-packages/django/core/urlresolvers.py(363)_reverse_with_prefix()
-> possibilities = self.reverse_dict.getlist(lookup_view)
/home/vagrant/.virtualenvs/wfp/lib/python2.5/site-packages/django/core/urlresolvers.py(276)reverse_dict()
-> self._populate()
/home/vagrant/.virtualenvs/wfp/lib/python2.5/site-packages/django/core/urlresolvers.py(265)_populate()
-> lookups.appendlist(pattern.callback, (bits, p_pattern, pattern.default_args))
/home/vagrant/.virtualenvs/wfp/lib/python2.5/site-packages/django/core/urlresolvers.py(216)callback()
-> self._callback = get_callable(self._callback_str)
/home/vagrant/.virtualenvs/wfp/lib/python2.5/site-packages/django/utils/functional.py(27)wrapper()
-> result = func(*args)
/home/vagrant/.virtualenvs/wfp/lib/python2.5/site-packages/django/core/urlresolvers.py(92)get_callable()
-> lookup_view = getattr(import_module(mod_name), func_name)
/home/vagrant/.virtualenvs/wfp/lib/python2.5/site-packages/django/utils/importlib.py(35)import_module()
-> __import__(name)
> /home/vagrant/.virtualenvs/wfp/lib/python2.5/site-packages/django/views/generic/simple.py(6)<module>()
-> import warnings
->返回urlresolvers.reverse('url\u name')
/home/vagrant/.virtualenvs/wfp/lib/python2.5/site packages/django/core/urlresolvers.py(476)reverse()
->将iri_返回到_uri(解析器。_使用_前缀反向_(视图,前缀,*args,**kwargs))
/home/vagrant/.virtualenvs/wfp/lib/python2.5/site packages/django/core/urlresolvers.py(363)\u reverse\u带前缀()
->可能性=self.reverse\u dict.getlist(查找视图)
/home/vagrant/.virtualenvs/wfp/lib/python2.5/site packages/django/core/urlresolvers.py(276)reverse_dict()
->自我.()
/home/vagrant/.virtualenvs/wfp/lib/python2.5/site packages/django/core/urlresolvers.py(265)(u populate()
->appendlist(pattern.callback,(bits,p_pattern,pattern.default_args))
/home/vagrant/.virtualenvs/wfp/lib/python2.5/site-packages/django/core/urlresolvers.py(216)callback()
->self.\u callback=get\u callable(self.\u callback\u str)
/home/vagrant/.virtualenvs/wfp/lib/python2.5/site-packages/django/utils/functional.py(27)wrapper()
->结果=func(*args)
/home/vagrant/.virtualenvs/wfp/lib/python2.5/site packages/django/core/urlsolvers.py(92)get_callable()
->lookup\u view=getattr(导入模块(模块名称)、函数名称)
/home/vagrant/.virtualenvs/wfp/lib/python2.5/site packages/django/utils/importlib.py(35)导入_模块()
->\uuuu导入\uuuuu(名称)
>/home/vagrant/.virtualenvs/wfp/lib/python2.5/site packages/django/views/generic/simple.py(6)()
->进口警告
未来的做法是什么?我目前正在使用Django 1.4。这只是一个Django功能的自动警告,如果您计划迁移到一个较新的Django版本,而该版本已不再支持此功能,则不应使用该功能
您可以查看弃用计划这只是一个猜测,但也许我做得对,我可以忽略此警告,因为我正在使用的函数不依赖于基于函数的视图,而只是在urlresolvers模块的扩展导入范围内。反向url的关联
url
行在url.py
中是什么样子的?谢谢,但我很清楚。。。问题是怎么做呢?你没有使用你展示的片段中不推荐使用的任何东西。很好,谢谢,这也是我发现的。。。我只是想知道为什么我会得到警告。看起来内核本身仍然使用一些不推荐的代码,可能是为了向后兼容。我想,我们将使用基于函数的视图删除这些内容。