web-dev-qa-db-ja.com

ジャンゴ。何かを編集する権限がありません

少し前に小さなアプリを作成しました。 admin.pyを作成し、admin.site.register(MenuEntry)を使用してクラスを管理コンソールに追加しました。そのクラスのアイテムがうまく表示されました。それから私は別のアプリに取り組み始め、以前と同様にすべてを作成しました。 何も編集する権限がありません。私はそれとこのアプリのファイルを比較しましたが、それらは非常によく似ているので、見つけることができません。違い、私はそれを機能させるために今何をすべきか理解できません。

64
Sergei Basharov

もう一度ファイルを確認したところ、違いがわかりました。プロジェクトの_urls.py_にadmin.autodiscover()を追加するのを忘れました。ありがとう。

137
Sergei Basharov

これが起こった別のケースがありました。私は「転写」と呼ばれるアプリを持っていて、プロジェクトと録音という2つのモデルがありました。ほとんど開発した後、アプリの名前を「録音」に変更することにしました。管理アプリは管理者として問題なく機能しましたが、管理者以外のユーザーはこのエラーメッセージを受け取りました。結局、(sqlite dbで)テーブルDjango_content_typeを見つけました。それはこれらの記録を持っていました:

 id name app_label model 
 ------------------------------------ -
 8プロジェクトトランスクリプションプロジェクト
 9レコーディングトランスクリプションレコーディング
 10プロジェクトレコーディングプロジェクト
 11レコーディングレコーディングレコーディング

途中、どこかで2つ(ほとんどの場合、レコード10に "記録"していることを知らない)の正しいレコードを追加しながら、正しくないレコードはそのまま残しました。管理者ユーザーは問題なく動作しましたが(理由は不思議です)、他のグループにはエラーが発生しました。 auth_group_permissionsを見ると、レコード8と9のみが割り当てられており、もちろん「transcription」というアプリはもうないことがわかりました。したがってエラー。

レコード10と11を削除し、8と9のapp_labelsを「recordings」に変更すると、マッドビルに喜びがあります。

2
Joe Gillon

Django= 1.7以上にアップグレードすると、この問題は自動的に解決されます。

Djangoのアップグレード:

pip install -U Django
1
Naresh

同じエラーが発生し、appnameが使用中のモジュールの1つと競合したため、リファクタリングする必要がありました。俺の app's名前はadminで、Djangoのadminも使用していました。

それを行う方法については、リンク- アプリの名前を変更 を確認してください。

0
Vaulstein