Django-Modell, Vererbung Und Foreign Keys

Grundsätzlich habe ich ein Modell wo ich habe eine Superklasse, vielen anderen Klassen teilen, und dann jede dieser Klassen hat einige einzigartige Eigenschaften, die sich voneinander unterscheiden. Sagen wir Klasse A ist die Superklasse und Klasse B, C und D sind Kinder der Klasse.

Sowohl der Klasse B und der Klasse C kann ein Vielfaches der Klasse D, jedoch habe ich gesehen, dass es am besten, um die Fremdschlüssel-Beziehung in der Klasse D, die bezieht sich dann auf der übergeordneten Klasse. Nun in den anderen Sprachen, ich könnte einfach sagen, es ist ein ForeignKey Beziehung zu der Klasse A, und dann die Sprache erkennt, die die Klassen " true type. Aber ich glaube nicht, dass Sie, wie es funktioniert mit Python.

Was ist die beste empfohlene Weg der Verfolgung dieses Problem?

EDIT: das Hier ist in etwa was ich meine...

class A(models.Model):
    field = models.TextField()

class B(A):
    other = <class specific functionality>

class C(A):
    other2 = <different functionality>

class D(A):
    #I would like class D to have a foreign key to either B or C, but not both.

Im wesentlichen, Klasse B und Klasse C haben beide mehrere class-D ist. Aber eine bestimmte Klasse D gehört nur zu einer von Ihnen.

InformationsquelleAutor AlbertoPL | 2009-07-11
Schreibe einen Kommentar