Admin siteのChange listで自分が入力したデータだけを表示する - 発展編
前回では、Change listにユーザごとにデータを表示できるようにしましたが、
場合によっては不都合な時があります。
社内システムなどでAdmin siteを利用するときです。
全てのデータを閲覧できる人と入力したデータを閲覧できる人
仕様
- ユーザのis_superuserを利用し、チェックの入っているユーザは全てのデータを閲覧することが可能とします。
- test2ユーザにスーパユーザ権限を付与します。
Adminの修正
admon.py
from django.contrib import admin
from appname.models import Post
class PostAdmin(admin.ModelAdmin):
list_display = ('title', 'pub_date', 'author', )
def queryset(self, request):
if request.user.is_superuser: #追加
return Post.objects.all() #追加
return Post.objects.filter(author = request.user)
admin.site.register(Post, PostAdmin)
test1ユーザでアクセス
test2ユーザでアクセス
簡単な社内システム作成ならこれで十分ではないでしょうか。
複雑なアクセス権限を設定したい場合は、パーミッションをカスタマイズします。

