Comment résoudre l'erreur « TypeError : View Must Be Callable » dans Django 1.10 ?

Barbara Streisand
Libérer: 2024-10-22 08:00:03
original
910 Les gens l'ont consulté

How to Resolve the

TypeError : la vue doit être appelable dans Django 1.10

Présentation :

Lors de la mise à niveau vers Django 1.10, les utilisateurs peuvent rencontrer une erreur indiquant : "la vue doit être un appelable ou une liste/tuple dans le cas d'include()." Cette erreur se produit en raison de changements dans la façon dont Django gère les spécifications de vue dans les modèles d'URL.

Cause :

À partir de Django 1.10, la spécification des vues sous forme de chaînes ('myapp.views .home') n'est plus pris en charge. Django exige désormais que les appelables de vue soient explicitement importés et inclus dans les modèles d'URL.

Solution :

1. Importer et spécifier les appelables de vue :

Modifiez les modèles d'URL pour inclure les appelables de vue importés. Si les modèles manquent de noms, pensez à les ajouter pour garantir une inversion correcte des URL.

<code class="python">from django.contrib.auth.views import login
from myapp.views import home, contact

urlpatterns = [
    url(r'^$', home, name='home'),
    url(r'^contact/$', contact, name='contact'),
    url(r'^login/$', login, name='login'),
]</code>
Copier après la connexion

2. Module d'importation de vues :

Pour les projets comportant de nombreuses vues, importer chaque vue individuellement peut devenir fastidieux. Vous pouvez également envisager d'importer l'intégralité du module de vues depuis l'application.

<code class="python">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>
Copier après la connexion

Utilisation d'Alias :

Notez l'utilisation des instructions as (par exemple, as myapp_views) pour importer modules à vues multiples sans conflits de noms.

Informations supplémentaires :

  • Pour une explication détaillée des répartiteurs d'URL dans Django, reportez-vous à la documentation officielle.
  • Assurez-vous que le module de vues de l'application est correctement nommé et importé dans le fichier de paramètres (par exemple, INSTALLED_APPS).
  • Si l'erreur persiste malgré les solutions ci-dessus, recherchez d'éventuelles fautes de frappe ou erreurs de syntaxe dans les modèles d'URL. .

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!

source:php
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!