2012-04-27 7 views
1

私はさらに多くの管理者を開くために必要な管理サイトを持っています。Django管理サイトの特定のフィールドを別のユーザーのために非表示にします

は、現在、私のモデルは、スーパーユーザのみが、クレジットカード番号を見ることができるので、それを作るために、管理サイトのフレームワークでの方法はあり

class YouTube(models.Model): 
    name = models.CharField(max_length=100) 
    credit_card_number = models.CharField(max_length=100) 

のように見えますか?管理サイトのフレームワークでは、追加、編集、削除の機能しか見ることができません。

答えて

2

方法にあなたが、ユーザーがルートであるかどうかを確認し、YouTubeAdminクラスでそれを使用しているYouTube.get_cc_root_onlyを作成します(list_display)を更新

class XyzAdmin(admin.ModelAdmin): 
    def get_cc_root_only(self, obj): 
     if self.username == "admin": 
      return "CC" 
     return "XXX" 

    def changelist_view(self, request, extra_context = None): 
     self.username = request.user.username 
     return super(XyzAdmin,self).changelist_view(request, extra_context = extra_context) 

    list_display = ("name", "get_cc_root_only") 
+0

方法私ができます'get_cc_root_only'メソッドでrootかどうか確認してください。 – Alexis

+0

管理サイトを表示しているユーザーがスーパーユーザーであるかどうかを確認します。 'get_cc_root_only(self)'からその情報を取得するにはどうすればいいですか – Alexis

+0

私の投稿を変更してリスト –

関連する問題