2011-01-29 10 views
0

私はアプリケーションにdjango管理インターフェースを使用しています。私は「books」という名前のアプリにいくつかのモデルを持っています。管理者以外の2人のユーザのマネージャと従業員(スーパーユーザステータスあり)があります。 「従業員」ユーザーはモデルのみ追加できます。 「管理者」は、書籍のアプリ内のすべてのモデルを追加、変更、削除できます。管理者インターフェースを使用してアクセス許可を与えました。しかし、 'manager'のシェルhas_perm(books.delete_ModelName)はFalseを返します。モデルを削除する権限を持つユーザーがhas_perm(app.delete_modelname)に対してfalseを返す理由

>>> u = User.objects.get(username__exact="manager") 
>>> u.has_perm("books.delete_ModelName") 
False 

adminインターフェイスのhas_perm(books.delete_ModelName)によって 'manager'にスーパーステータスを与えると、Trueが返されます。なぜこれが起こるのですか?私はこの許可に基づいて特定のページへのアクセスを設定したいと思います。何か回避策はありますか?

答えて

3

問題が解決しました。問題はModelNameにありました。モデルの名前が 'ModelName'の場合、モデル名として権限にダンプされます。だからここにそれはすべきです

>>> u.has_perm("books.delete_modelname") 
関連する問題