森下です。
参考になるかどうかわかりませんが、
save_model() で request.user を保存しているので、
フォームを調整したらどうでしょうか?

exclude = ('user',)

スーパーユーザーだけユーザーの選択をさせたいなら、

def get_form(self, request, obj=None, **kwargs):
    if request.user.is_superuser:
        self.exclude = []
    else:
        self.exclude = ('user',)
    return super(FilterUserAdmin, self).get_form(request, obj, **kwargs)



2017年5月11日(木) 18:21 Jun Tanaka <tna...@gmail.com>:

> 田中と申します。
>
> djangoの管理画面でのユーザー別の管理をしていてわからないことがありまして質問させていただきます。
>
>
> admin
>
> class FilterUserAdmin(admin.ModelAdmin):
>     def save_model(self, request, obj, form, change):
>         if request.user.is_superuser:
>             obj.save()
>         else:
>             obj.user = request.user
>             obj.save()
>
>
>     def get_queryset(self, request):
>         qs = super(FilterUserAdmin, self).get_queryset(request)
>         if request.user.is_superuser:
>             return qs
>         return qs.filter(user=request.user)
>
>
>     def has_change_permission(self, request, obj=None):
>         if not obj:
>             # the changelist itself
>             return True
>         return obj.user == request.user
>
>
> class MessageAdmin(FilterUserAdmin):
>     """
>     QA(対話)のAdmin
>     """
>     list_display = ('user', 'message')
>
>
> 参考:
>
> http://stackoverflow.com/questions/9574788/filter-django-admin-by-logged-in-user
>
> この様にすると、管理画面で別のユーザーIDが選択できてしまいます。
> 別のユーザーIDが表示されないようにしたいのですが、
> 何か良いお知恵を貸していただけないでしょうか?
> 別のユーザーでセーブしても、ログインユーザーでセーブされます。
> 管理画面での編集中に他のユーザーが表示されないようにしたいです。
>
> ちなみに、MessageAdminの'user'をなくすと、
> エラーで管理画面が立ち上がりません。
>
> 詳しい方いらっしゃいましたら、
> ご教授を宜しくお願い致します。
>
>
> --
> --
> ----------------- http://djangoproject.jp/ -----------------
> You received this message because you are subscribed to the Google Groups
> "django-ja" group.
> To post to this group, send email to django-ja@googlegroups.com
> To unsubscribe from this group, send email to
> django-ja-unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/django-ja
> ---
> このメールは Google グループのグループ「django-ja」に登録しているユーザーに送られています。
> このグループから退会し、グループからのメールの配信を停止するには django-ja+unsubscr...@googlegroups.com
> にメールを送信してください。
> その他のオプションについては https://groups.google.com/d/optout にアクセスしてください。
>

-- 
-- 
-----------------                       http://djangoproject.jp/                
         -----------------
You received this message because you are subscribed to the Google Groups 
"django-ja" group.
To post to this group, send email to django-ja@googlegroups.com
To unsubscribe from this group, send email to 
django-ja-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/django-ja
--- 
このメールは Google グループのグループ「django-ja」の登録者に送られています。
このグループから退会し、グループからのメールの配信を停止するには django-ja+unsubscr...@googlegroups.com 
にメールを送信してください。
その他のオプションについては、https://groups.google.com/d/optout にアクセスしてください。

メールによる返信