2017-01-17 7 views
0

Wenn ich versuche, auf den Admin-Bereich meines django App zu navigieren, erhalte ich einen Fehler nicht gefunden:Django Admin-Seite 404

Projekt/urls.py

from django.conf.urls import include, url 
from django.contrib import admin 
from app.views import View1, View2 
from django.conf import settings 
from django.conf.urls.static import static 

urlpatterns = [ 
    url(r'^$', View1.as_view(), name="view_1"), 
    url(r'^another_view/(?P<pk>\d+)$', View2.as_view(), name="view_2"), 
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) 

app/urls.py

from django.conf.urls import include, url 
from django.contrib import admin 

urlpatterns = [ 
    url(r'^admin/', include(admin.site.urls)), 
    (r'^/', include('project.urls')), 
] 

Projekt/settings.py

.... 
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 
STATIC_ROOT = os.path.join(BASE_DIR, 'static') 
STATIC_URL = '/static/' 
STATICFILES_DIRS = (os.path.join(BASE_DIR, 'app/static'),) 

MEDIA_ROOT = os.path.join(BASE_DIR, 'media') 
MEDIA_URL = '/media/' 
MEDIAFILES_DIRS = (os.path.join(BASE_DIR, 'app/media'),) 
.... 

Wenn ich versuche, auf localhost zu navigieren: 8000/admin, bekomme ich folgende Fehlermeldung:

Page Not Found (404) 

Using the URLconf defined in app.urls, Django tried these URL patterns, in this order: 
^$ [name='view_1'] 
^another_view$ [name='view_2'] 
^media\/(?P<path>.*)$ 
The current URL, admin, didn't match any of these. 

Antwort

2

Sie haben die App und Projekt urls falsch herum.

Die Projekt-URLs sollten die Zuordnung für den Administrator enthalten und die App-URLs einschließen. Die App-URLs sollten wiederum die spezifischen Zuordnungen für die App-Ansichten enthalten.

Das statische Zeug sollte immer noch in den Projekt-URLs sein; obwohl du es auf jeden Fall nicht brauchen solltest.

+0

Ich bin mir nicht sicher, ob ich sie richtig beschriftet habe, aber das Umschalten funktioniert nicht; Alle anderen URLs funktionieren so, wie sie derzeit sind. Wenn ich sie umschalte, bekomme ich: Ihr URL-Muster ('^ /', (, None, None)) ist ungültig . Stellen Sie sicher, dass urlpatterns eine Liste von url() - Instanzen ist. –

+0

Weil Sie dieses zweite Muster mit 'url()' umhüllen müssen, wie alle anderen auch. –

+0

Wenn ich sie umschalte und url() hinzufüge, wenn ich zu localhost: 8000 navigiere, was mich vorher auf die Homepage brachte, bekomme ich jetzt einen 404: Mit der in project.url definierten URLconf probiert Django diese URL-Muster aus , in dieser Reihenfolge: ^ admin/ ^/ –