Ограничение прав администратора с помощью limit_choices_to - PullRequest
6 голосов
/ 22 ноября 2011

Я хотел бы ограничить выбор ForeignKey в пользовательском интерфейсе администратора с помощью limit_choices_to;Тем не менее, я хотел бы добиться этого без изменения модели, так как модель взята из библиотеки, которую я не могу контролировать.Как можно динамически достичь этого?Или я мог бы использовать поле в модели администратора, чтобы добиться этого?

Спасибо, --Eytan

1 Ответ

12 голосов
/ 22 ноября 2011

Django предоставляет хук администратора для изменения набора запросов внешних ключей: formfield_for_foreignkey

class MyModelAdmin(admin.ModelAdmin):
    def formfield_for_foreignkey(self, db_field, request, **kwargs):
        if db_field.name == "car":
            kwargs["queryset"] = Car.objects.filter(owner=request.user)
        return super(MyModelAdmin, self).formfield_for_foreignkey(db_field, request, **kwargs)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...