Maison >développement back-end >Tutoriel Python >Comment corriger \'TypeError : la vue doit être appelable\' dans Django 1.10 ?
TypeError : la vue doit être un appelable ou une liste/tuple dans le cas de include()
Cette erreur se produit lorsque les vues sont spécifiés sous forme de chaînes dans les modèles d'URL après la mise à niveau vers Django 1.10. Django 1.10 nécessite que les vues soient spécifiées comme appelables.
Solution :
Pour résoudre cette erreur, mettez à jour votre urls.py pour inclure la vue appelable.
Importation de vue unique :
Importez la vue individuelle dans votre urls.py et spécifiez-la comme référence de fonction :
<code class="python">from django.conf.urls import include, url from myapp.views import home, contact urlpatterns = [ url(r'^$', home, name='home'), url(r'^contact/$', contact, name='contact'), ]</code>
Importation de vues multiples :
Pour éviter d'importer chaque vue individuellement, vous pouvez importer l'intégralité du module de vues depuis votre application :
<code class="python">from django.conf.urls import include, url from myapp import views as myapp_views urlpatterns = [ url(r'^$', myapp_views.home, name='home'), url(r'^contact/$', myapp_views.contact, name='contact'), ]</code>
En utilisant le mot-clé "as" :
Pour éviter les conflits de noms lors de l'importation de plusieurs modules de vues à partir de différentes applications, utilisez le mot-clé "as" :
<code class="python">from django.conf.urls import include, url from django.contrib.auth import views as auth_views from myapp import views as myapp_views urlpatterns = [ url(r'^$', myapp_views.home, name='home'), url(r'^contact/$', myapp_views.contact, name='contact'), url(r'^login/$', auth_views.login, name='login'), ]</code>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!