2013-05-10 2 views
0

Я использую сайт администратора django, чтобы люди могли легче управлять базой данных.Django admin конкретные данные для конкретного пользователя

По какой-то причине я хочу скрыть некоторые данные от некоторого пользователя.

Предположим, у меня есть модель с именем Book и в базе данных много книг. Я хочу, чтобы у другого пользователя был разный объем книг, которые он может просматривать.

Как бы я это сделал?

Я думаю о разрешении. Возможно ли установить разрешение на фильтрацию данных?

Я знаю, как создать разрешение в соответствии с указанной моделью. Однако после этого, как я могу использовать это разрешение? Я считаю, что мне, возможно, придется переопределить часть метода «changelist_view» в классе BookAdmin, правильно?

Любая помощь будет работать. Заранее спасибо

ответ

1

Используйте метод queryset на модели администратора. Что-то вроде:

class BookAdmin(admin.ModelAdmin): 
    def queryset(self, request): 
     return super(BookAdmin, self).queryset(request).filter(owner=request.user) 

Очевидно, что фильтр будет меняться в зависимости от вашей модели книги, но это общая идея.

+0

Это намного проще, я думаю. Я попробую посмотреть, работает ли это или нет. –

+0

BTW, я дам «согласиться» после того, как закончил тестировать материал. И это может занять некоторое время. –

Смежные вопросы