Django: Support for string view arguments to url() is deprecated and will be removed in Django 1.10

前端 未结 3 996
暗喜
暗喜 2020-12-18 17:51

New python/Django user (and indeed new to SO):

When trying to migrate my Django project, I get an error:

RemovedInDjango110Warning: Support for stri         


        
相关标签:
3条回答
  • 2020-12-18 18:17

    You should be able to use the following:

    from django.conf.urls import url
    from django.contrib import admin
    
    from main import views
    
    urlpatterns = [
        url(r'^admin/', admin.site.urls),
        url(r'^$', views.home)
    ]
    

    I'm not absolutely certain what your directory structure looks like, but using a relative import such as from . import X is for when the files are in the same folder as each other.

    0 讨论(0)
  • 2020-12-18 18:23

    I have found the answer to my question. It was indeed an import error. For Django 1.10, you now have to import the app's view.py, and then pass the second argument of url() without quotes. Here is my code now in urls.py:

    from django.conf.urls import url
    from django.contrib import admin
    import main.views
    
    urlpatterns = [
        url(r'^admin/', admin.site.urls),
        url(r'^$', main.views.home)
    ]
    

    I did not change anything in the app or view.py files.

    Props to @Rik Poggi for illustrating how to import in his answer to this question: Django - Import views from separate apps

    0 讨论(0)
  • 2020-12-18 18:32

    You can use your functions by importing all of them to list and added each one of them to urlpatterns.

    from django.conf.urls import url
    from django.contrib import admin
    
    from main.views import(
       home,
       function2,
       function3,
    )
    
    urlpatterns = [
       url(r'^admin/', admin.site.urls),
       url(r'^$', home),
       url(r'^$', function2),
       url(r'^$', function3),
    ]
    
    0 讨论(0)
提交回复
热议问题