J'essaye actuellement Django. J'utilise l' namespace
argument dans l'un de mes include()
s dans urls.py. Lorsque j'exécute le serveur et que j'essaye de naviguer, j'obtiens cette erreur.
File "C:\Users\User\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\urls\conf.py", line 39, in include
'Specifying a namespace in include() without providing an app_name '
django.core.exceptions.ImproperlyConfigured: Specifying a namespace in include() without providing an app_name is not supported. Set the app_name attribute in the included module, or pass a 2-tuple containing the list of patterns and app_name instead.
Voici mes fichiers urls.py:
#project/urls.py
from django.conf.urls import include, url
from django.contrib import admin
urlpatterns = [
url(r'^reviews/', include('reviews.urls', namespace='reviews')),
url(r'^admin/', include(admin.site.urls)),
]
et
#app/urls.py
from django.conf.urls import url
from . import views
urlpatterns = [
# ex: /
url(r'^$', views.review_list, name='review_list'),
# ex: /review/5/
url(r'^review/(?P<review_id>[0-9]+)/$', views.review_detail, name='review_detail'),
# ex: /wine/
url(r'^wine$', views.wine_list, name='wine_list'),
# ex: /wine/5/
url(r'^wine/(?P<wine_id>[0-9]+)/$', views.wine_detail, name='wine_detail'),
]
Que dois-je transmettre app_name
comme indiqué dans le message d'erreur?
python
django
django-urls
Nelson M
la source
la source
reviews.url
pour avoir uneapp_name
variable dansdjango 2.1
.path("the_app/", include(("app.urls", <name>), namespace=<the same name>))
et c'est assez ennuyeux.Django 1.11+, 2.0+
Vous devez définir l'app_name dans le fichier urls que vous incluez
Ensuite, vous pouvez l'inclure comme vous le faites.
En outre, il peut être intéressant de noter ce que la documentation Django dit ici https://docs.djangoproject.com/en/1.11/ref/urls/#include :
( https://docs.djangoproject.com/en/1.11/topics/http/urls/#namespaces-and-include )
la source
Django 2.0, vous devez spécifier app_name dans votre urls.py , il n'est pas nécessaire de spécifier l'argument app_name sur include.
Fichier URL principal.
URL incluse.
Ensuite, utilisez utiliser dans le modèle comme
Plus de détails: https://code.djangoproject.com/ticket/28691 Django 2.0 Docs
la source
J'ai inclus une bibliothèque qui n'est pas (entièrement) compatible avec django 2.1 (django_auth_pro_saml2). Par conséquent, je crée un deuxième fichier
saml_urls.py
:Telle que je pourrais inclure les URL comme:
Hacky, mais cela a fonctionné pour moi, alors que ce
url(r'^reviews/', include(('reviews.urls', 'reviews'), namespace='reviews'))
n'était pas le cas.la source
Je suis également confronté à la même erreur dans Django 2.2 et je le résolve de cette façon
fichier urls.py
fichier polls / urls.py
exemple d'utilisation de l'espace de noms dans la méthode de vue basée sur calss
exemple d'utilisation de l'espace de noms dans les modèles
Ici sondages: index signifie app_name [définir dans le fichier polls / urls.py ]: nom [définir dans le fichier polls / urls.py à l' intérieur de la fonction de chemin]
leur officiel qui est plutôt bon, vous pouvez vérifier pour plus d'informations namespace_django_official_doc
la source