Sto cercando di ottenere il blocco di Django URL namespaces. Ma non riesco a trovare alcun esempio o documentazione.Come si usano gli spazi dei nomi URL di Django?
Ecco cosa ho provato.
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())
In view1.html, {url% pippo: view1 3% } output/foo/3 e {% url bar: view1 3%} output/bar/3. Ciò è vero sia che navighi in/foo/X o/bar/X.
Quello che voglio è essere in grado di navigare in/foo/X o/bar/X e avere {% url view1 3%} output rispettivamente/foo/3 o/bar/3, rispettivamente.
La ragione per cui sto facendo questo è che posso far sì che i due spazi dei nomi utilizzino diversi file CSS. Cioè la navigazione sotto/foo includerebbe foo.css e/bar includerebbe bar.css. –
Sarei consapevole che avere URL diversi con lo stesso contenuto renderà sicuramente il tuo sito penalizzato sui motori di ricerca. Non so se questo sia un problema per te o no, ma se lo fosse, ti consiglierei di aggirare questo aspetto in un altro modo. Forse potresti impostare un cookie sul client e fargli scegliere gli stili CSS in un altro modo. – Clueless
Ho finito per impostare il CSS in base a diversi sottodomini. È solo un problema da testare localmente, che richiede le voci del file host. –