인라인 반복을 선언하는 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
보기에 나타나지 않습니다.
내가하고 싶은 것은 범주 모델의 속성 중 하나를 사용하여 외래 키를 필터링하는 것입니다. 즉, formfield_for_foreignkey
메서드에서 상위 개체에 액세스하려고합니다.
누구나 달성 방법을 알고 있습니까?