Django: Fehler beim Aufruf der Metaklassen-Basen

8

Hier ist der Fehler

  

TypeError: Fehler beim Aufruf der Metaklassen-Basen       Metaklassenkonflikt: Die Metaklasse einer abgeleiteten Klasse muss eine (nicht-strikte) Unterklasse der Metaklassen aller ihrer Basen sein

Die fragliche Klasse in meinem models.py

%Vor%

Die Zeile, in der der Fehler angezeigt wird:

%Vor%

Aber ich (denke) es bedeutet dieses:

%Vor%

Ich bin nicht sicher, was es genau bedeutet, wie kann ich meine Modelle von models.Model und Forms.Form innerhalb der gleichen Klasse erben? Kann ich beim Erstellen meiner Klasse keine zwei Werte übergeben? Wenn ja wie?

EIN WEITERES EDIT

%Vor%

Vollständige Rückverfolgung:

%Vor%     
jdx 25.07.2012, 19:51
quelle

1 Antwort

10

Das ist das Problem:

%Vor%

Sie versuchen, von Model und Form zu erben. Du kannst nicht, und du solltest nicht.

Dies ist nicht möglich, da die Metaklasse einer abgeleiteten Klasse eine (nicht strikte) Unterklasse der Metaklassen aller ihrer Basen sein muss. Form hat eine Metaklasse:

%Vor%

Modell hat auch eine Metaklasse:

%Vor%

Wenn Sie dies tun würden, müssten Sie eine Metaklasse festlegen, die von beiden abgeleitet ist.

Das sollten Sie jedoch nicht tun, denn django hat ModelForms, die existieren, um Formulare zu erstellen, die Modelle modellieren und Ihnen damit die Komplexität ersparen. Hör einfach auf, von Form zu erben.

    
Marcin 25.07.2012, 20:07
quelle

Tags und Links