Подтвердить что ты не робот

Как пройти вызов в Django 1.9

Привет, я новичок в Python и Django, и я следую руководству django workshop. Я только что установил Python 3.5 и Django 1.9 и получил много сообщений об ошибках... Только сейчас я нашел много документов, но теперь застрял. Я хочу добавить виды, и поэтому я добавил следующий код в urls.py:

from django.conf.urls import include, url

# Uncomment the next two lines to enable the admin:
from django.contrib import admin
admin.autodiscover()

urlpatterns = [
    # Uncomment the admin/doc line below to enable admin documentation:
    #url(r'^admin/doc/', include('django.contrib.admindocs.urls')),
    url(r'^admin/', include(admin.site.urls)),
    url(r'^rezept/(?P<slug>[-\w]+)/$', 'recipes.views.detail'),
    url(r'^$', 'recipes.views.index'),
]

и каждый раз получать сообщение об ошибке:

Support for string view arguments to url() is deprecated and will be removed in Django 1.10 (got recipes.views.index). Pass the callable instead.
  url(r'^$', 'recipes.views.index'),

Но я не мог найти, как их пройти. Документации только говорят "передать их", но нет примера, как...

4b9b3361

Ответ 1

Это предупреждение об устаревании, что означает, что код все равно будет работать. Но для решения этой проблемы просто измените

url(r'^$', 'recipes.views.index'),

:

#First of all explicitly import the view
from recipes import views as recipes_views #this is to avoid conflicts with other view imports

и в шаблонах URL,

url(r'^rezept/(?P<slug>[-\w]+)/$', recipes_views.detail),
url(r'^$', recipes_views.index),

Более подробную документацию и аргументы можно найти здесь

В современную эпоху мы обновили учебник, вместо этого рекомендуем импортируя ваш модуль просмотра и ссылаясь на ваши функции просмотра (или классы). Это имеет ряд преимуществ, все вытекающие из тот факт, что мы используем обычный Python вместо "Django String Magic": ошибки, когда вы ошибочно называете имя представления, менее неясны, IDE может помочь с автозавершением имен представлений и т.д.