2009-10-04 13 views
31

Sembra che il solutore di url di django esegua la ricerca di maiuscole e minuscole per risolvere l'url e distinguere tra '/ Login' e 'login'. I miei modelli di URL sono i seguenti.Url insensibili alle maiuscole per Django?

urlpatterns = patterns('', 
    (r'^admin/(.*)', admin.site.root), 
    (r'^static/(?P<path>.*)$', 'django.views.static.serve', 
     {'document_root': settings.STATIC_DOC_ROOT, 'show_indexes': True}), 
    (r'^login/$', 'django.contrib.auth.views.login'), 
    (r'^logout/$', do_logout), 
) 

Qualcuno può guidarmi, come rendere insensibili le maiuscole/minuscole dei django?

risposta

82

Basta mettere (?i) all'inizio di ogni corda r'...', vale a dire:

urlpatterns = patterns('', 
(r'^(?i)admin/(.*)', admin.site.root), 
(r'^(?i)static/(?P<path>.*)$', 'django.views.static.serve', 
    {'document_root': settings.STATIC_DOC_ROOT, 'show_indexes': True}), 
(r'^(?i)login/$', 'django.contrib.auth.views.login'), 
(r'^(?i)logout/$', do_logout), 
) 

dire ogni RE per abbinare caso insensibile - e, naturalmente, vivere felici e contenti -)

+0

! Ha funzionato .... Grazie mille ... Puoi suggerirmi buone risorse per imparare le espressioni regolari usando python? –

+3

http://www.regular-expressions.info/ se avete bisogno di informazioni gratuite come in-free-beer; http://docs.python.org/library/re.html per informazioni specifiche su Python; http://books.google.com/books?id=NYEX-Q9evKoC&dq=regular+expression&printsec=frontcover&source=bll&ots=qon_rQMxev&sig=2Z-RDduTVFdL1LeT8mlNq8GTh5U&hl=en&ei=PzbIStutJYqssgPjscH_BQ&sa=X&oi=book_result&ct=result&resnum=12#v=onepage&q=regular% 20expression & f = false se puoi permetterti di investire (ottimo libro! -). –

+2

Inoltre, poiché (? I) è un normale flag express, non è necessario che sia dopo il Caret. Ad esempio, '(r '(? I)^logout/$', do_logout),' funziona pure e potrebbe essere più leggibile per alcuni. Altre espressioni regolari che possono essere usate all'interno dell'espresso sono 'L', 'm', 's', 'u', 'x' come discusso sotto (? ILmusx) in [https://docs.python.org/2 /library/re.html](https://docs.python.org/2/library/re.html). – ChrisFreeman

Problemi correlati