如何按用户属性过滤管理员选项?

时间:2011-05-03 12:43:08

标签: django-admin

我有一个名为Country的模型的模型。

每当我在管理员中编辑我的模型时,在diplaying the country选项时,我会看到很多contries。我希望该选项列表可以通过用户属性(例如user.get_profile()。continent)进行预过滤。

我可以在哪里挂钩?

谢谢

1 个答案:

答案 0 :(得分:1)

检查http://docs.djangoproject.com/en/dev/ref/contrib/admin/ - “ModelAdmin.formfield_for_choice_field()”

class MyModelAdmin(admin.ModelAdmin):
    def formfield_for_choice_field(self, db_field, request, **kwargs):
        if db_field.name == "country":
            kwargs['choices'] = get_country_choices_for_continent(request.user.get_profile().continent)
        return super(MyModelAdmin, self).formfield_for_choice_field(db_field, request, **kwargs)