Как фильтровать параметры администратора по пользовательскому атрибуту?

#django-admin

#django-admin

Вопрос:

У меня есть модель с начальным ключом к модели под названием Country.

Каждый раз, когда я редактирую свою модель в admin, при воспроизведении опции country я вижу множество изменений. Я бы хотел, чтобы этот список параметров был предварительно отфильтрован по пользовательскому атрибуту (user.get_profile().continent например).

Где я могу это подключить?

Спасибо

Ответ №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)