Hier sind meine schematischen Modelle:inverse Beziehung auf mehrere Vererbungsklassen in django
class Law(models.Model):
...
class Bill(models.Model):
... # data for a proposed law, or change of an existing law
class PrivateBill(Bill):
... # data for a Bill that was initiated by a parliament member
class GovernmentBill(Bill):
... # data for a Bill that was initiated by the government
Es ist möglich und wahrscheinlich, dass in Zukunft I (oder vielleicht jemand anderes) mehr Bill Typen hinzufügen möchte.
Jeder Bill auf ein Gesetz zeigen sollte (was anzeigt, welches Recht dieses Gesetz ändern wird) und meine Frage ist: Was ist der beste Weg, dies zu realisieren ist?
Wenn ich die ForeignKey (Gesetz) zu Bill, fügen werde ich eine Beziehung von jedem Bill zum Gesetz, sondern ein Gesetz nur eine inverse Beziehung müßte Bills (bill_set) und keine verschiedene inverse Beziehung zu jeder Art von Rechnung. Natürlich kann ich jede Art von Rechnung filtern, um nur diejenigen zu erhalten, die auf ein bestimmtes Gesetz verweisen, aber das ist etwas, das ich oft verwenden muss. Ich denke also, dass privatebill_set, borgetbill_set usw. den Code machen würde lesbarer.
Eine andere mögliche Lösung besteht darin, die Fremdschlüssel zu jedem der Vererbungsklassen hinzuzufügen (das mir eine privatebill_set geben würde, governmentbill_set, futurebill_set), aber das scheint haarig, weil ich auf zukünftige Programmierer angewiesen sein würde, sich daran zu erinnern hinzufügen diese Beziehung.
Wie würden Sie das lösen?
Tolle Idee. Vielen Dank. –