【问题标题】:Support for string view arguments to url() is deprecated and will be removed in Django 1.10. Pass the callable instead不推荐对 url() 的字符串视图参数的支持,并将在 Django 1.10 中删除。改为传递可调用对象
【发布时间】:2016-08-05 20:55:29
【问题描述】:

这是我发出警告的代码。

它对urlpatterns 中的"posts.views.post_list" 等字符串发出警告,并建议代替字符串传递可调用对象。我需要修复或删除该警告。

from django.conf.urls import url
#from django.contrib import admin

from . import views

urlpatterns = [
   url(r'^$', "posts.views.post_list"),
   url(r'^create/$', "posts.views.post_create"),
   url(r'^detail/$', "posts.views.post_detail"),
   url(r'^update/$', "posts.views.post_update"),
   url(r'^delete/$', "posts.views.post_delete"),    
   #url(r'^posts/$', "<app_name>.<views_py>.<function_name>"),
]

【问题讨论】:

标签: python django


【解决方案1】:

谢谢大家,我自己修复了这个警告。现在它运行良好,没有任何警告。

from django.conf.urls import url
#from django.contrib import admin

from .views import(
  post_list,
  post_create,
  post_detail,
  post_update,
  post_delete
)

urlpatterns = [
  url(r'^$', post_list),
  url(r'^create/$', post_create),
  url(r'^detail/$', post_detail),
  url(r'^update/$', post_update),
  url(r'^delete/$', post_delete),    
  #url(r'^posts/$', "<app_name>.<views_py>.<function_name>"),
]

【讨论】:

    【解决方案2】:

    你应该传递真正的函数,而不是由函数名组成的字符串:

    from django.conf.urls import url
    #from django.contrib import admin
    
    from . import views
    
    urlpatterns = [
       url(r'^$', views.post_list),
       url(r'^create/$', views.post_create),
       url(r'^detail/$', views.post_detail),
       url(r'^update/$', views.post_update),
       url(r'^delete/$', views.post_delete),    
       #url(r'^posts/$', <views_py>.<function_name>),
    ]
    

    【讨论】:

      【解决方案3】:

      正如警告所说,将字符串传递给 url 已被弃用 (docs)。

      您必须传递可调用对象。这意味着导入函数并直接传递它:

       urlpatterns = [
         url(r'^$', views.post_list),
         url(r'^create/$', views.post_create),
         url(r'^detail/$', views.post_detail),
         url(r'^update/$', views.post_update),
         url(r'^delete/$', views.post_delete),    
      ]
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-03-09
        • 1970-01-01
        • 1970-01-01
        • 2022-10-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多