使用Django 1.2我有一个堆叠的内联管理员,上面有很多字段。我需要根据内联存在的父对象限制多对多的选择。例如,我在WidgetPart
管理员上有Widget
内联。在我编辑现有Widget
时,我需要根据与正在编辑的WidgetPart.foo
相关的逻辑来限制Wiget
个选项。我似乎无法使用formfield_for_manytomany
执行此操作,因为它不仅不提供任何obj
相关信息,而且request
参数在使用时似乎始终为None
在内联。还有另一种方式吗?
答案 0 :(得分:1)
您可以在InlineAdmin类上执行以下操作:
def formfield_for_manytomany(self, db_field, request, **kwargs):
if db_field.name == "foo":
kwargs["queryset"] = SomeModel.objects.filter(something=something)
return db_field.formfield(**kwargs)
return super(YourModel, self).formfield_for_manytomany(db_field, request, **kwargs)