

モデルをユーザごとにadminの画面を複数に分けようと思いました。

get_querysetを使って、ユーザを分割できるとのことで、  
ユーザごとに管理をしたいモデル全てにユーザ（User）の外部キーをつけました。  
このように↓

[code]

    class Hoge(models.Model):
        user = models.ForeignKey(User, unique=False, verbose_name=u'ユーザ')
    
[/code]

さらに、admin.pyでの設定はこのような感じです↓。

[code]

    class HogeAdmin(admin.ModelAdmin):
        def get_queryset(self, request):
            qs = super(HogeAdmin, self).get_queryset(request)
            if request.user.is_superuser:
                return qs
            # 自分のIDでフィルターかける
            return qs.filter(author=request.user)
    
[/code]

また、添付画像のように、「スーパーユーザー権限」はなく、「スタッフ権限」のあるユーザで、  
分離はできると思いました。

![スタッフ権限のあるユーザ](https://i.stack.imgur.com/2PjZh.png)

しかし、このユーザを使ってadminのページにログインしようと思いましたが、  
「変更のためのパーミッションがありませんでした。」となってしまいました。

![admin](https://i.stack.imgur.com/qmnLn.png)

urls.pyにはもちろん

[code]

    from django.contrib import admin
    admin.autodiscover()
    
[/code]

は記載しています。

もし、解決策があればよろしくお願い致します。


CC BY-SA 3.0
2015-03-18T14:43:40.300
8079
2015-03-19T02:28:54.683
2015-03-19T02:28:54.683
7934
7934
question
python django social-framework
Django管理サイトをユーザごとに分けたいが