田中と申します。

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 にアクセスしてください。

メールによる返信