2015-12-08 19 views
10

Ciao sono nuovo in Python e Django e seguo la guida django workshop. Ho appena installato Python 3.5 e Django 1.9 e ho ricevuto un sacco di messaggi di errore ... Proprio ora ho trovato un sacco di dokumentation ma ora bloccato. Voglio aggiungere punti di vista e così ho aggiunto seguente codice nel urls.py:Come passare il chiamabile in Django 1.9

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'), 
] 

e ogni volta che il messaggio di errore:

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'), 

Ma non riuscivo a trovare il modo di passare loro . Le documentazioni dicono solo "passali" ma nessun esempio su come ...

+0

Sembra che questa guida sia stata scritta per Django 1.4. Molto è cambiato molto da allora, quindi potresti essere meglio cercare un tutorial diverso per imparare Django. – Alasdair

+0

Hmm si grazie (= – Pompi

risposta

20

Questo è un avviso di ritiro, il che significa che il codice verrà comunque eseguito per ora. Ma per risolvere questo problema, basta cambiare

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

a questo:

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

e nei modelli di URL,

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

More documentation and the reasoning can be found here

In epoca moderna, abbiamo hai aggiornato il tutorial per raccomandare invece importando il modulo di visualizzazione e facendo riferimento direttamente alle funzioni di visualizzazione (o alle classi ) direttamente. Questo ha un certo numero di vantaggi, tutti derivanti dal fatto che stiamo usando il normale Python al posto di "Django String Magic": gli errori quando si digita il nome di una vista sono meno oscuri, gli IDE possono aiutare con il completamento automatico dei nomi delle viste , ecc.

+0

wow Grazie mille^-^ – Pompi

+0

Felice che abbia aiutato ... – karthikr