4 Stimmen

Mehrere Eins-zu-Eins-Felder im Django-Admin einbinden

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?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X