J'essaie d'obtenir le coup de Django URL namespaces. Mais je ne trouve aucun exemple ou document.Comment utilisez-vous les espaces de noms d'URL Django?
Voici ce que j'ai essayé.
urls.py:
from django.conf.urls.defaults import *
urlpatterns = patterns('',
(r'^foo/', include('sub_urls', namespace='foo', app_name='foo')),
(r'^bar/', include('sub_urls', namespace='bar', app_name='bar')),
)
sub_urls.py:
from django.conf.urls.defaults import patterns, url
from views import view1
urlpatterns = patterns('views',
url(r'^(?P<view_id>\d+)/$', view1, name='view1')
)
views.py:
from django.shortcuts import render_to_response
def view1(request, view_id):
return render_to_response('view1.html', locals())
En view1.html, {% url foo: view1 3% } sorties/foo/3, et {% url bar: view1 3%} sorties/bar/3. Cela est vrai que je navigue vers/foo/X ou/bar/X. Ce que je veux, c'est pouvoir naviguer jusqu'à/foo/X ou/bar/X, et avoir {% url view1 3%} en sortie soit/foo/3 ou/bar/3, respectivement.
La raison pour laquelle je fais cela est que je peux avoir les deux espaces de noms utilisent des fichiers CSS différents. C'est à dire. La navigation sous/foo inclurait foo.css, et/bar inclurait bar.css. –
Je serais conscient que d'avoir des URL différentes avec le même contenu va certainement pénaliser votre site sur les moteurs de recherche. Je ne sais pas si cela vous préoccupe ou non, mais si c'est le cas, je recommanderais de contourner ce problème d'une autre façon. Peut-être que vous pourriez définir un cookie sur le client et laissez-les choisir les styles CSS d'une autre manière. – Clueless
J'ai fini par définir le CSS en fonction de différents sous-domaines. C'est juste une douleur à tester localement, ce qui nécessite des entrées de fichier hôte. –