2011-02-11 131 views
0

使用Django 1.2我有一个堆叠的内联管理员,上面有多对多的字段。我需要根据内联存在的父对象来限制多对多的选择。例如,我有一个WidgetPart内联,它位于Widget admin上。当我编辑现有的Widget时,我需要根据正在编辑的Wiget的逻辑限制WidgetPart.foo的选择。我似乎无法使用formfield_for_manytomany这样做,因为它不仅不提供任何obj的相关信息,而且它的request参数在内联中使用时似乎始终为None。有另一种方法吗?Django堆叠内联管理问题

回答

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)