【发布时间】:2017-08-22 02:57:44
【问题描述】:
我有一个 Django 管理类,它声明了一个可迭代的内联。比如:
@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 视图中向用户显示,这意味着,当创建 Category 类的对象并且用户想要为其添加修饰符时,绝不会在 add 视图中显示。
我想要做的是通过 Category 模型的属性之一过滤外键,我的意思是,我想从 formfield_for_foreignkey 方法访问父对象。
有谁知道实现这一目标的方法吗?
【问题讨论】:
标签: python django django-models django-admin admin