filter_horizontal 在使用 formfield_for_manytomany 时不起作用

filter_horizontal does not work when using formfield_for_manytomany

我可以让 filter_horizontal 工作,但是一旦我添加 formfield_for_manytomany 它就会停止工作。有什么方法可以使用 formfield_for_manytomany 并保持 filter_horizontal?

class MyModelAdmin(admin.ModelAdmin):

    filter_horizontal = ('users',)

    def formfield_for_manytomany(self, db_field, request=None, **kwargs):
        if db_field.name == 'users':
            kwargs["queryset"] = User.objects.filter(profile__api_user=True)

        return super(MyModelAdmin, self).formfield_for_foreignkey(db_field, request, **kwargs)

formfield_for_manytomanyfilter_horizontal 应该可以很好地协同工作。

问题是您在调用 super() 时调用了错误的方法。应该是

return super(MyModelAdmin, self).formfield_for_manytomany(db_field, request, **kwargs)