2012-01-30 2 views
7

Dopo aver abilitato l'interfaccia di amministratore e avviato il server Web di sviluppo ad es. 128.0.0.1:8000, sono in grado di raggiungere l'interfaccia di amministrazione suReindirizza richiesta all'interfaccia di amministrazione

128.0.0.1:8000/admin. 

Ovviamente causa il seguente spazio dei nomi URL

url(r'^admin/', include(admin.site.urls)). 

Che cosa devo fare reindirizzare le richieste su 128.0.0.1: 8000/automaticamente su 128.0.0.1:8000/admin?

Lo spazio dei nomi URL

url(r'^$/', include(admin.site.urls)) 

non sembra essere la soluzione.

+0

"Non sembra"? Perchè no? –

+1

Buon dio. Trovato l'errore. Il suo "url (r '^ $', include (admin.site.urls))". La singola barra in avanti era responsabile dell'errore. Passa troppo tempo a questo. Grazie Daniele. – Simon

+0

'url ('', admin.site.urls),' in 'urlpatterns' ha funzionato per me :) –

risposta

5

Tu dici che vuoi un reindirizzare così si usa di Django RedirectView

from django.views.generic.base import RedirectView 
url(r'^$', RedirectView.as_view(url='/admin')) 
13

Usa RedirectView. Invece di URL hardcoding è possibile utilizzare reverse e il nome di una visualizzazione amministratore.

from django.core.urlresolvers import reverse 
from django.views.generic.base import RedirectView 

url(r'^$', RedirectView.as_view(url=reverse('admin:index'))) 
+4

Ho dovuto usare' reverse_lazy' invece di 'reverse' come menzionato in [questa risposta] (http: // stackoverflow .com/a/24680788/1,797912 millions). Altrimenti ho ricevuto un errore 'ImproperlyConfigured' (" L'urlconf incluso [...] .urls non ha alcun pattern in esso "). – Chriki

3

Questo funziona per me. Il reverse_lazy no.

Django 1.8.1 e al di sopra

urlpatterns = patterns('', 
    url(r'^$', lambda x: HttpResponseRedirect('/admin')), 
) 
+1

Per django1.8.4 funziona. – mushfiq

0

soluzioni precedenti sia spettacolo reindirizzamento a un hard-coded URL o utilizzare metodi che non hanno funzionato qui. Questo lavora in Django 1.9 e reindirizza l'indice di amministrazione vista:

from django.shortcuts import redirect 

urlpatterns = patterns('', 
    url(r'^$', lambda _: redirect('admin:index'), name='index'), 
)