2017-10-05 7 views
0

Général

Je lis à propos de l'espace de noms et l'ai essayé, mais je ne comprends pas le point: quel est l'avantage d'utiliser les espaces de noms.Quel est l'avantage d'utiliser l'espace de noms?

Ce que je fais avec namespaces

-je inclure mon application dans les projets urls.py par

url(r'^myapp/', include('myapp.urls', namespace='myapp')), 

Dans les applications urls.py je

url(ur'^$', index, name='index'), 

Dans les applications modèles Je peux mettre un lien par

<a href="{% url 'myapp:index' %}"> 

Problème

Si je devais partager 'myapp' en tant qu'application réutilisable, j'obligerais l'utilisateur à inclure l'application avec l'espace de noms donné 'myapp'. Pourquoi ne devrais-je pas simplement nommer le nom de l'URL 'myapp-index' au lieu de 'index' dans urls.py?

url(ur'^$', index, name='myapp-index'), 

et dans le modèle

<a href="{% url 'myapp-index' %}"> 

Répondre

1

Si vous nommez votre URL avec 'myapp-index', c'est une sorte de l'espacement des noms. La fonctionnalité d'espaces de noms dans Django est d'aider avec les meilleures pratiques et avoir un standard. Les normes sont utiles pour visualiser les modèles.

Vous n'avez pas besoin d'utiliser les espaces de noms, mais c'est utile. Vous utilisez pour éviter les conflits avec des applications tierces (ou même plusieurs applications dans votre projet).

Vous pouvez lire plus dans https://docs.djangoproject.com/en/dev/topics/http/urls/#url-namespaces