django formfield_for_foreignkey()

Django, Flask, Bottle, WSGI, CGI…
Antworten
Benutzeravatar
MeisterLampe
User
Beiträge: 19
Registriert: Dienstag 3. August 2010, 23:39

Hallo zusammen,

wie schon im Titel zu lesen bin ich schon recht nah an einer Lösung des Problems aber mir fehlt noch der letzte schliff ;-)

Zum aktuellen Stand: Ich habe über das eingebaute admininterface das Model 'Auftrag' erstellen/anzeigen lassen. In diesem 'Auftrag' hab ich mir noch weitere Models geladen wie AuftragPosition, Lieferschein u. Rechnung per Inline Argument im admin.py. Da ich aber nicht immer alle Datensätze von Lieferschein u. Rechnung für 'einen' Auftrag anzeigt bekommen möchte, hab ich die Funktion 'formfield_for_foreignkey()' gefunden. Diese manipuliert die Anzeige der Listbox im Adminmenu so das ich z.B. im Auftrag 123456 stehe und theoretisch über einen Filter auch nur die Lieferscheine u. Rechnung, die zum Auftrag 123456 anzeigen lassen kann. Mein Problem ist jetzt das mir im admin.py unter den xxxInline Klassen die entsprechende Referenz zum übergeordneten Auftrag zurückgeben lassen kann.

ein wenig code der genau das macht was ich will aber nicht dynamisch...

Code: Alles auswählen

class LieferscheinPosInline(admin.TabularInline):
    model = LieferscheinPosition
    extra = 0

    def formfield_for_foreignkey(self, db_field, request, **kwargs):
        if db_field.name == "auftragposition":
            kwargs["queryset"] = AuftragPosition.objects.filter(auftrag=123456, art='PROD')
        return super(LieferscheinPosInline, self).formfield_for_foreignkey(db_field, request, **kwargs)
 
...für 123456 möchte ich jetzt gern den übergeordneten Auftrag abfragen (dieser wird ja mit auf der aktuellen Seite angezeigt).

Hoffe ich habe mich verständlich ausgedrückt.
Antworten