Ich habe eine Django-Admin-Klasse, die einen Inline-Iterablen deklariert. Etwas wie:DjangoAdmin: Zugriff auf die übergeordnete Instanz innerhalb eines Inline-Administrators
@admin.register(Category)
class CategoryAdmin(admin.ModelAdmin):
...
...
inlines = [CategoryModifiersInline,]
...
...
Dann habe ich eine Inline-Admin-Klasse wie folgt:
class CategoryModifiersInline(admin.TabularInline):
model = Category.modifiers.through
fk_name = 'category'
extra = 1
def formfield_for_foreignkey(self, db_field, request, **kwargs):
qs = Product.objects.filter(is_modifier=True).filter(active=True)
kwargs['queryset'] = qs
return super(CategoryModifiersInline, self).formfield_for_foreignkey(db_field, request, **kwargs)
Wo ich die queryset für den Fremdschlüssel basierend auf einigen Geschäftsanforderungen filtern.
Diese Inline wird dem Benutzer nur in der Ansicht 10 angezeigt, dh wenn ein Objekt der Klasse Category erstellt wird und der Benutzer Modifizierer hinzufügen möchte, niemals in der Ansicht add
.
Was ich tun möchte, ist das Filtern des Fremdschlüssels nach einem der Attribute des Category-Modells, ich meine, ich möchte auf das übergeordnete Objekt von der formfield_for_foreignkey
Methode zugreifen.
Kennt jemand einen Weg, um das zu erreichen?