Ich kann das Admin-Modul nicht dazu bringen, zwei gleiche Feldmodelle in eins-zu-eins-Beziehungen einzubinden. Zur Veranschaulichung habe ich das folgende Beispiel erstellt, ein Modell Person verwendet zwei Adressen:
class Client(models.Model):
# Official address
official_addr = models.OneToOneField(Address, related_name='official')
# Temporary address
temp_addr = models.OneToOneField(Address, related_name='temp')
Ich möchte das Hinzufügen von Personen über die Django-Admin-Schnittstelle mit beiden Adressen inlined. Bisher habe ich diesen Code für Admin-Konfiguration:
class ClientInline(admin.StackedInline):
model = Client
fk_name = "official_addr"
class ClientInline2(admin.StackedInline):
model = Client
fk_name = "temp_addr"
class AddressAdmin(admin.ModelAdmin):
inlines = [ClientInline,ClientInline2]
admin.site.register(Address, AddressAdmin)
Bei der ersten Adresse funktioniert es einwandfrei, aber bei beiden Adressen spielt die Schnittstelle verrückt - sie dupliziert die Felder des Clients anstelle der Adressen. Was mache ich falsch? Gibt es eine bessere Möglichkeit, zwei gleiche Modelle inline zu haben?