django admin mehr als ein ForeignKey für admin.TabularInline

9

Ich versuche, ein Formular mit einem Unterformular im Admin-Bereich zu implementieren.

%Vor%

Mein Problem ist das Folgende:

%Vor%

Also, wie mache ich das Formular eine Dropdown-Liste für jeden Fremdschlüssel ( fighter , opponent ).

Die 2 Fremdschlüssel sind (siehe unten):

  • Ein Link zum Kämpfer ( fighter )
  • Ein Link zum Gegner ( opponent )

kämpfer / models.py

%Vor%

kämpfer / admin.py

%Vor%     
Yannick 23.09.2014, 20:23
quelle

2 Antworten

19

Das hat mein Problem gelöst (mit fk_name ):

%Vor%     
Yannick 27.09.2014, 16:47
quelle
2

Mein erster Gedanke war, dass Sie ManyToMany-Fields verwenden und dann die Anzahl der Relationen auf zwei begrenzen können. Aber dann dachte ich, dass man nie sicher sein kann, welches Fighter-Objekt welchen Typ darstellt.

Dann habe ich einen kurzen Blick in die Django-Docs geworfen und etwas gefunden, das dein Problem beantworten sollte: Django-Doc

Der interessante Teil ist:

  

Die Mitgliedschaft hat zwei Fremdschlüssel für die Person (Person und Inviter), wodurch die Beziehung zweideutig wird und Django nicht wissen kann, welche verwendet werden soll. In diesem Fall müssen Sie explizit angeben, welche Fremdschlüssel Django verwenden soll, indem Sie through_fields verwenden, wie im obigen Beispiel.

Ich hoffe, dass dir das hilft.

    
Stefan Wegener 23.09.2014 22:19
quelle

Tags und Links