Relativer Pfad in Klasse wird nach Instanzierung nicht erkannt
Verfasst: Dienstag 25. September 2018, 22:57
Hallo zusammen...
Ich stelle mich wohl wieder etwas dumm an. Ich gehe stark davon aus, dass die Lösung ganz einfach wäre, leider komm ich nicht drauf...
Ich habe ein Django-Projekt. Dazu habe ich nun eine Klasse geschrieben, die aus der views.py Datei heraus Instantiiert werden soll. In der Klasse werden Datenbank-Abfragen gemacht.
Projektstruktur:
mein_projekt:
---- sb.sqlite3
---- home:
---------- view.py
---------- .............
---------- programms:
-------------------- send.py
-------------------- .......
Nun habe ich meine klasse 'send' in die view.py importiert:
Wenn ich die Klasse nun erstelle, kommt ein Fehler, weil die Datenbank-Abfrage nicht gemacht werden konnte, resp. das Queryset leer ist.
Der Pfad zu Datenbank ist in der Klasse, als relativer Pfad angegeben:
Dieser Pfad bezieht sich auf den Speicherort der Klasse, aber nicht auf den Speicherort der view.py. Ich gehe mal davon aus, das dies der Fehler ist.
Wenn ich aber zum testen, den Pfad in der Klasse anpasse auf:
wirft die view.py trotzdem einen Fehler. Wenn ich aber eine Testdatei im gleichen Ordner wie die view.py erstelle und die Klasse von da aufrufe, funktioniert alles.
Folgende Fragen:
1. Hat jemand eine Ahnung, warum es aus der Testdatei funktioniert, aber nicht aus view.py
2. Wie kann ich solche Fehler umgehen. Dabei denke ich an eine Attribut der Klasse z.B. self.db_path wo ich den relativen Pfad bei der Instantiierung
mitgeben kann. Dabei würde ich aber gerne vom Pfad der aktuellen Datei (hier im Beispiel view.py) ausgehen
z.B. aktuellerPfad + programms/send.py
Danke schon mal für eure Hilfe.
(und ein erneutes sorry für meine Unwissenheit)
Ich stelle mich wohl wieder etwas dumm an. Ich gehe stark davon aus, dass die Lösung ganz einfach wäre, leider komm ich nicht drauf...
Ich habe ein Django-Projekt. Dazu habe ich nun eine Klasse geschrieben, die aus der views.py Datei heraus Instantiiert werden soll. In der Klasse werden Datenbank-Abfragen gemacht.
Projektstruktur:
mein_projekt:
---- sb.sqlite3
---- home:
---------- view.py
---------- .............
---------- programms:
-------------------- send.py
-------------------- .......
Nun habe ich meine klasse 'send' in die view.py importiert:
Code: Alles auswählen
from home.programs.send import Send
Der Pfad zu Datenbank ist in der Klasse, als relativer Pfad angegeben:
Code: Alles auswählen
connection = sqlite3.connect('../../db.sqlite3')
Wenn ich aber zum testen, den Pfad in der Klasse anpasse auf:
Code: Alles auswählen
connection = sqlite3.connect('../db.sqlite3')
Folgende Fragen:
1. Hat jemand eine Ahnung, warum es aus der Testdatei funktioniert, aber nicht aus view.py
2. Wie kann ich solche Fehler umgehen. Dabei denke ich an eine Attribut der Klasse z.B. self.db_path wo ich den relativen Pfad bei der Instantiierung
mitgeben kann. Dabei würde ich aber gerne vom Pfad der aktuellen Datei (hier im Beispiel view.py) ausgehen
z.B. aktuellerPfad + programms/send.py
Danke schon mal für eure Hilfe.
(und ein erneutes sorry für meine Unwissenheit)