django-admin-inlines: Objekt von formfield_for_foreignkey
Ich versuche zu filtern, die Optionen in eine foreignkey-Feld, in eine django-admin-inline. So, ich möchte Zugriff auf das parent-Objekt bearbeitet wird. Ich habe geforscht, konnte aber keine Lösung.
class ProjectGroupMembershipInline(admin.StackedInline):
model = ProjectGroupMembership
extra = 1
formset = ProjectGroupMembershipInlineFormSet
form = ProjectGroupMembershipInlineForm
def formfield_for_foreignkey(self, db_field, request=None, **kwargs):
if db_field.name == 'group':
kwargs['queryset'] = Group.objects.filter(some_filtering_here=object_being_edited)
return super(ProjectGroupMembershipInline, self).formfield_for_foreignkey(db_field, request, **kwargs)
Habe ich verifiziert, dass kwargs ist leer, wenn die Bearbeitung eines Objekts, so dass ich nicht bekommen kann das Objekt von dort aus.
Jede Hilfe bitte? Dank
Du musst angemeldet sein, um einen Kommentar abzugeben.
Filtern der Wahlmöglichkeiten für ein fremdschlüsselfeld in einem admin-inline, die ich überschreiben Sie die form, so dass ich aktualisieren kann die form des Feldes
queryset
Attribut. So haben Sie Zugriff aufself.instance
die die Sache bearbeitet wird in die form. So etwas wie dieses:Brauchen Sie nicht zu verwenden
formfield_for_foreignkey
wenn Sie die obigen Punkte und es sollte erreichen, was Sie beschrieben.Andere Weise, dass, IMHO, fühlt sich sauberer als, aber ähnlich wie @erichonkanen Antwort ist so etwas wie dieses:
Konnte ich lösen es, indem Sie die formfield_for_foreignkey und stripping der Objekt-ID aus der url. Es ist nicht die sexiest Art und Weise, um die ID aber Django nicht bieten Zugriff auf die Objekt-ID für die admin-Objekt noch (sollte es).