Jerry Meng
Jerry Meng

Reputation: 1506

Django admin particular data for particular user

I am using django admin site to let people manage database easier.

For some reason, I want to hide some data from some user.

Let's say I have a model named Book and there are a lot of books in database. I want different user has the different scope of books he can view.

How would I do that?

I am thinking about permission. Is that possible to set the permission to filter the data?

I know how to create permission according to a specified model. However, after that, how do I suppose to use that permission? I believe I may need to override part of "changelist_view" method under BookAdmin class, right?

Any help would works. Thanks in advance

Upvotes: 0

Views: 315

Answers (1)

Peter DeGlopper
Peter DeGlopper

Reputation: 37364

Use the queryset method on your admin model. Something like:

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

Obviously the filter will vary depending on your book model, but this is the general idea.

Upvotes: 1

Related Questions