Hallo in die Runde,
Gibt es eine Möglichkeit, bei einer Klasse in models.py die Erstellung einer DB-Tabelle mittels syncdb zu unterdrücken? In meinem Datenmodell gibt es mehrere Tabellen, die viele Attribute gemeinsam haben. Jetzt möchte ich eine Art Basisklasse erstellen (von models.Model abgeleitet), von der nun meine Datenklassen abgeleitet werden sollen. Die Basisklasse brauche ich in der DB nicht.
Ich dachte, daß es vielleicht ein Attribut wie z.B. "suppress_table_creation = True" in dem Admin-Klasse gibt; in der Dokumentation wurde ich jedoch nicht fündig. Hat da einer eine Idee? Natürlich könnte ich nach jedem syncdb die Basistabelle händisch in der DB löschen, aber das ist nicht wirklich "sauber".
TIA & lg,
c/hris.
[Django] Erstellen einer DB-Tabelle unterdrücken
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Du kannst sowieso bei den Django-Models seit magic-removal nicht mehr mit Vererbung arbeiten, von da her hast du so ein Problem gar nicht erst.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
So, jetzt mußte ich erst mal nachlesen, was magic-removal bedeutet (new-born Django-user!). Nun, das kann ich so nicht unterschreiben - in der von mir verwendeten grad vor ein paar Tagen runtergeladenen Version (0.96.1) geht das sehr wohl.Leonidas hat geschrieben:Du kannst sowieso bei den Django-Models seit magic-removal nicht mehr mit Vererbung arbeiten, von da her hast du so ein Problem gar nicht erst.
lg,
c/hris.
Geht AFAIK nicht, wird aber kontrovers diskutiert, siehe Ticket #3163.
PS: Nimm lieber die Version aus dem SVN statt 0.96, dort sind einige Verbesserungen vorgenommen worden, etwa durchgängige Benutzung von Unicode oder automatisches Escapen von Werten in Templates.
Stefan
PS: Nimm lieber die Version aus dem SVN statt 0.96, dort sind einige Verbesserungen vorgenommen worden, etwa durchgängige Benutzung von Unicode oder automatisches Escapen von Werten in Templates.
Stefan
Hallo Stefan,
Danke für die Antwort. Wenn ich das Ticket richtig interpretiere, dann ist genau dieses Feature jetzt implementiert worden (create_db_schema=False). Dann werd ich mal die SVN-Version runterladen. Danke!
lg,
c/hris.
Danke für die Antwort. Wenn ich das Ticket richtig interpretiere, dann ist genau dieses Feature jetzt implementiert worden (create_db_schema=False). Dann werd ich mal die SVN-Version runterladen. Danke!
lg,
c/hris.
Nope, es gibt einen Patch für die SVN-Version (r6977), doch der Code wurde noch nicht offiziell akzeptiert und eingebaut. Du solltest dir aber deine Version selbst patchen können, wenn du mit einem eigenen Fork leben kannst. In der in den Kommentaren erwähnten Diskussion war James Bennett ja eher dagegen mit dem Argument, wenn dir syncb nicht passt, dann benutzt es einfach nicht...
Stefan
Stefan
Hi,
Ahja, grad gesehen, dasses nicht eingebaut ist. Aber: es gibt einen Eintrag vom 1.12., der da lautet: "stage changed from Design decision needed to Accepted." Heißt das nicht, daß der Code in die offizielle Version eingebaut wird?
lg,
c/hris.
Ahja, grad gesehen, dasses nicht eingebaut ist. Aber: es gibt einen Eintrag vom 1.12., der da lautet: "stage changed from Design decision needed to Accepted." Heißt das nicht, daß der Code in die offizielle Version eingebaut wird?
lg,
c/hris.
Ich würde nicht die Luft anhalten... das heißt erstmal nur, dass das Ticket von dem Topf, in dem noch 131 Issues lagern in den gekommen ist, in dem 438 Issues auf Bearbeitung warten :)
Stefan
Stefan
Hallo Stefan,
Ok, got your point
Um zum Ursprungsthema zurückzukommen - wie würdet ihr vorgehen? Ich habe jetzt ein Datenbankmodell, in dem ein Bürgermeister, ein Pfarrer, etc. vorkommen (jetzt mal nur als Beispiel). Im Endeffekt wären das alles Subklassen von Person, wo der Großteil der Eigenschaften (Attribute und Funktionen) implementiert sind. Person selber brauch ich in der Datenbank aber nicht.
Was ist der präferierte Weg hier?
lg,
c/hris.
Ok, got your point

Um zum Ursprungsthema zurückzukommen - wie würdet ihr vorgehen? Ich habe jetzt ein Datenbankmodell, in dem ein Bürgermeister, ein Pfarrer, etc. vorkommen (jetzt mal nur als Beispiel). Im Endeffekt wären das alles Subklassen von Person, wo der Großteil der Eigenschaften (Attribute und Funktionen) implementiert sind. Person selber brauch ich in der Datenbank aber nicht.
Was ist der präferierte Weg hier?
lg,
c/hris.