Django Write your first App 2 --> Problem

Django, Flask, Bottle, WSGI, CGI…
Antworten
samid
User
Beiträge: 60
Registriert: Samstag 28. April 2012, 08:40

Hallo zusammen,

ich bin in Django ein Vollanfänger und habe bei dem zweiten Tutorial ein Problem mit der Adminseite. Ich mache alles so wie es beschrieben ist, bekomme aber den folgenden Fehler:

Page not found (404)
Request Mehton: GET
Request URL: http://127.0.0.1:8000/admin
Using the URLconf defined in mysite.urls, Django tried these URL patterns, in this order:
1. ^/admin/
The current URL, admin, didn't match any of these

Yuo're seeing this error because you have DEBUG = True in your Django setting file. Change that to False, and Django will display a standard 404 page.

Ich hoffe ihr könnt mir helfen. Danke.
BlackJack

@samid: Du gibst '/admin' ein das Muster ist aber '^/admin/'. Probier's mal mit dem / am Ende.
samid
User
Beiträge: 60
Registriert: Samstag 28. April 2012, 08:40

Hi,

habe ich, geht trotzdem nicht.
Benutzeravatar
/me
User
Beiträge: 3555
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

samid hat geschrieben:habe ich, geht trotzdem nicht.
Hast du in der settings.py die App django.contrib.admin den INSTALLED_APPS hinzugefügt?

Hast du in der urls.py die folgenden Zeilen aktiviert?

Code: Alles auswählen

from django.contrib import admin
admin.autodiscover()
samid
User
Beiträge: 60
Registriert: Samstag 28. April 2012, 08:40

ja habe ich auch:

hier meine urls.py:

Code: Alles auswählen

from django.conf.urls import patterns, include, url

# Uncomment the next two lines to enable the admin:
from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
    # Examples:
    # url(r'^$', 'mysite.views.home', name='home'),
    # url(r'^mysite/', include('mysite.foo.urls')),

    # Uncomment the admin/doc line below to enable admin documentation:
    # url(r'^admin/doc/', include('django.contrib.admindocs.urls')),

    # Uncomment the next line to enable the admin:
    #url(r'^/admin/', include(admin.site.urls)),
    url(r'^/admin/', admin.site.urls),
)

Hier ein Ausschnitt aus meiner settings.py:

Code: Alles auswählen

INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'polls',
    # Uncomment the next line to enable the admin:
    'django.contrib.admin',
    # Uncomment the next line to enable admin documentation:
    # 'django.contrib.admindocs',
)
Ich stehe echt auf dem Schlauch. Mein OS ist Ubuntu 12.10.
Benutzeravatar
/me
User
Beiträge: 3555
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

samid hat geschrieben: hier meine urls.py:

Code: Alles auswählen

[...]
    # Uncomment the next line to enable the admin:
    #url(r'^/admin/', include(admin.site.urls)),
    url(r'^/admin/', admin.site.urls),
[...]
Du hättest den Ratschlag mit dem Uncomment beherzigen sollen. Vergleiche die auskommentierte Zeile mal mit der die du eingegeben hast.
samid
User
Beiträge: 60
Registriert: Samstag 28. April 2012, 08:40

Ja das habe ich geändert nachdem ich den Fehler hatte, wenn ich jetzt die obere Zeile auskommentiere und die untere einkommentiere kommt genau der gleiche Fehler. Das ist komisch, die Startseite von Django funktioniert, aber die Adminseite nicht.
Benutzeravatar
/me
User
Beiträge: 3555
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

samid hat geschrieben:Das ist komisch, die Startseite von Django funktioniert, aber die Adminseite nicht.
Hmm, wenn du alles gemacht hast (settings angepasst, urls korrekt(!) angepasst und anschließend noch syncdb hast laufen lassen) dann sehe ich aktuell keinen Grund warum es nicht gehen sollte. Ich experimentiere hier noch mal.

Edit: Jetzt sehe ich einen möglichen Grund. Du verwendest

Code: Alles auswählen

url(r'^/admin/', include(admin.site.urls)),
Korrekt wäre es ohne führenden Slash:

Code: Alles auswählen

url(r'^admin/', include(admin.site.urls)),
samid
User
Beiträge: 60
Registriert: Samstag 28. April 2012, 08:40

Diesen Slash habe ich auch beim experementieren hinzugefügt. Davor ging es leider auch nicht. Wir für diese auskommentierte admin app beim syncdb eine Tabelle angelegt? Wenn ja wie kann ich das nachprüfen?
Benutzeravatar
/me
User
Beiträge: 3555
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

samid hat geschrieben:Wir für diese auskommentierte admin app beim syncdb eine Tabelle angelegt? Wenn ja wie kann ich das nachprüfen?
Tabellen werden dann hinzugefügt, wenn in einer Applikation ein Model für sie definiert ist. Dazu muss Django allerdings wissen, dass diese App existiert und daher muss manage.py sncdb nach dem Hinzufügen der Applikation in der settings.py ausgeführt werden. Die Tabellen selber kannst du dir mit dem geeigneten Tool deiner Wahl anschauen. Welches Tool das ist hängt davon ab, welche Datenbank du verwendest. Mit Wissen um Datenbanksystem und Betriebssystem könnten wir eventuell ein geeignetes Tool vorschlagen.

Welche Django-Version setzt du eigentlich ein?
samid
User
Beiträge: 60
Registriert: Samstag 28. April 2012, 08:40

Hallo,

ich benutze Ubuntu 12.10, Django 1.4.4 und Sqlite3. Ich vermute dass es auch an der Version von Django liegen kann, da ich das Tutorial von 1.4.5 benutze. Ich werde mir 1.4.5 draufschmeißen und es nochmal probieren. Ich wollte das Problem gelöst bekommen, damit ich daraus auch was lernen kann. Aber trotzdem Riesendank an Euch für die Hilfe.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Das wird keinen Unterschied machen, da 1.4.5 ja nur ein Bufgix/Security-Release für 1.4 ist und nichts an der Funktionalität ändern sollte.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Antworten