[Django] Models werden auf der Admin-Seite nicht angezeigt.

Django, Flask, Bottle, WSGI, CGI…
Antworten
Silmaril
User
Beiträge: 55
Registriert: Sonntag 21. September 2008, 17:10
Wohnort: Franken

Hallo

Seit etwas längerem habe ich mich mal wieder an Django gewagt und bin gleich auf ein Problem gestoßen, dass ich auch mit einer Internetrecherche bisher nicht lösen konnte.

⚫ Ich habe ein Projekt frontend und eine App webapp. In webapp habe ich die Modells Messung, Teilleistung und Blockierung angelegt:
http://de.pastebin.ca/2300812

⚫ In der settings.py habe ich die App und das Admin-Interface aktiviert:
http://de.pastebin.ca/2300814

⚫ Dann habe ich die admin.py angelegt:

Code: Alles auswählen

from frontend.webapp.models import Messung, Teilleistung, Blockierung
from django.contrib import admin

admin.site.register(Messung)
admin.site.register(Teilleistung)
admin.site.register(Blockierung)
⚫ Und die entsprechende Zeile in der urls.py habe ich natürlich auch auskommentiert.

Im Admin-Interface werden aber nur die Punkte Auth und Sites angezeigt. (ausprobiert mit dem Entwicklungsserver)

Was hab ich falsch gemacht?
Lebe jeden Tag, als wäre es Absicht.
Silmaril
User
Beiträge: 55
Registriert: Sonntag 21. September 2008, 17:10
Wohnort: Franken

Dieser Tipp hat mich auch nicht weitergebracht. Genauer gesagt lieferte es mir die Fehlermeldung Error: No module named webapp.

Ich bin mit meinem Latein am Ende :cry:
Lebe jeden Tag, als wäre es Absicht.
Sirius3
User
Beiträge: 17747
Registriert: Sonntag 21. Oktober 2012, 17:20

@Silmaril: das ist doch schonmal ein Anfang:
Er findet das Modul nicht. Hast Du im webapp-Verzeichnis eine __init__.py?
Silmaril
User
Beiträge: 55
Registriert: Sonntag 21. September 2008, 17:10
Wohnort: Franken

ja, das habe ich @sirius

Ich habe mich im Kommentar vielleicht auch missverständlich ausgedrückt. Er findet das Modul nur nicht, wenn ich den Tipp aus der im Kommentar verlinkten Seite folge. Also wenn ich 'frontend.webapp' in die INSTALLED_APPS reinschreibe anstatt 'webapp', wie es normal ja auch richtig ist.

Wenn ich das ganze wie oben im Beitrag laufen lasse, kommt keine Fehlermeldung aber die Models fehlen halt im Admin-Interface.
Lebe jeden Tag, als wäre es Absicht.
Benutzeravatar
sparrow
User
Beiträge: 4193
Registriert: Freitag 17. April 2009, 10:28

Zeig mal bitte wo welche Datei liegt. Der Befehl "tree" zeigt die Struktur inkl. Unterverzeichnissen und Dateien (unter Windows tree /f glaube ich).
Silmaril
User
Beiträge: 55
Registriert: Sonntag 21. September 2008, 17:10
Wohnort: Franken

Code: Alles auswählen

.
├── frontend
│   ├── __init__.py
│   ├── __init__.pyc
│   ├── settings.py
│   ├── settings.py~
│   ├── settings.pyc
│   ├── urls.py
│   ├── urls.py~
│   ├── urls.pyc
│   ├── wsgi.py
│   └── wsgi.pyc
├── manage.py
├── waermebilanzierung.db
└── webapp
    ├── admin.py 
    ├── admin.py ~
    ├── __init__.py
    ├── __init__.pyc
    ├── models.py
    ├── models.py~
    ├── models.pyc
    ├── tests.py
    └── views.py
(@sparrow: tree ist übrigens ein klasse Tipp, werde ich mir merken)
Lebe jeden Tag, als wäre es Absicht.
Benutzeravatar
sparrow
User
Beiträge: 4193
Registriert: Freitag 17. April 2009, 10:28

Dann in den Inhalt von installed_apps aus der settings.py und den den Inhalt von webapp\admin.py bitte.
Silmaril
User
Beiträge: 55
Registriert: Sonntag 21. September 2008, 17:10
Wohnort: Franken

Hab ich doch schon gepostet, sparrow ;)

Code: Alles auswählen

INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    # Uncomment the next line to enable the admin:
    'django.contrib.admin',
    # Uncomment the next line to enable admin documentation:
    'django.contrib.admindocs',
    # eigene Apps:
    'webapp'
)

Code: Alles auswählen

from frontend.webapp.models import Messung, Teilleistung, Blockierung
from django.contrib import admin

admin.site.register(Messung)
admin.site.register(Teilleistung)
admin.site.register(Blockierung)
Lebe jeden Tag, als wäre es Absicht.
Sirius3
User
Beiträge: 17747
Registriert: Sonntag 21. Oktober 2012, 17:20

Warum

Code: Alles auswählen

from frontend.webapp.models import Messung, Teilleistung, Blockierung
wenn doch webapp parallel zu frontend liegt?
Silmaril
User
Beiträge: 55
Registriert: Sonntag 21. September 2008, 17:10
Wohnort: Franken

Stimmt. Danke. Das ist falsch. Ich habe das nur einfach schnell so umgeändert als der relative Import

Code: Alles auswählen

from .models import Messung, Teilleistung, Blockierung
nicht funktionierte obwohl ich Python 2.7 verwende

Code: Alles auswählen

from webapp.models import Messung, Teilleistung, Blockierung
funktionier aber leider auch nicht (gerade getestet). Oder muss ich nach dem bearbeiten von webapp/admin.py noch mehr machen als nur den Entwicklungsserver neu zu starten?
Lebe jeden Tag, als wäre es Absicht.
Sirius3
User
Beiträge: 17747
Registriert: Sonntag 21. Oktober 2012, 17:20

@Silmaril: ich habe jetzt ein neues Projekt erstellt, Deine models.py, admin.py und settings.py
kopiert und es tut alles einwandfrei.

Fang einfach von vorne an.
Installiere im Zweifel django neu.
Silmaril
User
Beiträge: 55
Registriert: Sonntag 21. September 2008, 17:10
Wohnort: Franken

Ok, ich fange erst mal an, das Projekt neu zu erstellen. Danke für deine Mühe
Lebe jeden Tag, als wäre es Absicht.
Silmaril
User
Beiträge: 55
Registriert: Sonntag 21. September 2008, 17:10
Wohnort: Franken

Kurze Frage: Kann es damit zu tun haben, dass ich das ganze in einer virtual environment (mit virtualenv) mache?

Ich glaube nicht, aber...

Ich habe jetzt eine neue App angelegt und es danach mit einem ganz neuen Projekt versucht. Beides erfolglos. Ich lege jetzt ein neues virtual environment an und installiere django darin.
Lebe jeden Tag, als wäre es Absicht.
Silmaril
User
Beiträge: 55
Registriert: Sonntag 21. September 2008, 17:10
Wohnort: Franken

Also ich habe jetzt ein neues Virtual Environment angelegt, Django installiert, ein neues Projekt und eine App angelegt und die Dateien wieder mit diesem Inhalt hier befüllt. Ich benutzte dazu übrigens diese Anleitung: http://www.django-workshop.de/

Es funktioniert immer noch nicht

Ich benutze Django 1.4.3 und bin jetzt mit meinem Latein komplett am Ende :K

Weiß jemand, was ich noch versuchen könnte oder wo das Problem herkommen könnte?

Bild
Lebe jeden Tag, als wäre es Absicht.
Sirius3
User
Beiträge: 17747
Registriert: Sonntag 21. Oktober 2012, 17:20

@Silmaril: da hätte ich auch gleich draufkommen können.
Die temporäre Datei im Filetree verrät es ja schon

Code: Alles auswählen

    ├── admin.py ~
Die admin-Datei hat die Endung .py[Leerzeichen]. Der Editor Deiner Wahl scheint wohl
anfällig auf solche Flüchtigkeitsfehler zu sein.

Grüße
Sirius
Benutzeravatar
sparrow
User
Beiträge: 4193
Registriert: Freitag 17. April 2009, 10:28

Oh verdammt, _das_ hätte ich nicht gesehen. Hut ab!
Silmaril
User
Beiträge: 55
Registriert: Sonntag 21. September 2008, 17:10
Wohnort: Franken

Mensch was war DAS den für ein gemeiner Fehler?!? :shock:

Ich danke dir, Sirius. Ohne dich wüsste ich nicht was ich gemacht hätte. Gesehen hätte ich das jedenfalls nicht. Und weil ich die Datei bei allen meinen Versuchen einfach nur herumkopiert habe, habe ich den Fehler einfach immer mit geschleppt.

Danke nochmal (auch an alle anderen, die mir helfen wollten)
Lebe jeden Tag, als wäre es Absicht.
Antworten