インラインのiterableを宣言するDjango管理クラスがあります。ような何か:DjangoAdmin:インライン管理者の親インスタンスへのアクセス
@admin.register(Category)
class CategoryAdmin(admin.ModelAdmin):
...
...
inlines = [CategoryModifiersInline,]
...
...
は、それから私は、インライン管理者クラスのように持っている:私はいくつかのビジネス要件に基づいて、外部キーのクエリセットをフィルタリング
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)
。
このインラインは、change
ビューのユーザにのみ表示されます。つまり、カテゴリカテゴリのオブジェクトが作成され、修飾子を追加する場合は、add
ビューには決して表示されません。
私がしたいことは、カテゴリモデルの属性の1つで外部キーをフィルタリングしていることです。すなわち、formfield_for_foreignkey
メソッドから親オブジェクトにアクセスしたいとします。
これを達成する方法を知っている人はいますか?