Maison >développement back-end >Tutoriel Python >Comment corriger \'TypeError : la vue doit être appelable\' dans Django 1.10 ?

Comment corriger \'TypeError : la vue doit être appelable\' dans Django 1.10 ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-22 08:06:171064parcourir

How to Fix

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn