0

オブジェクトのアクセス許可を処理するために django-guardian を使用しています。私のsettings.pyで:

ANONYMOUS_USER_ID = -1

ただし、サーバーを実行しようとすると、不適切に構成されたエラーが発生します。

django.core.exceptions.ImproperlyConfigured: In order to use django-guardian's ObjectPermissionBackend authorization backend you have to configure ANONYMOUS_USER_ID at your settings module

これは、settings.py の上部で行っていることが原因である可能性があると思わfrom guardian.shortcuts import assignれますが、よくわかりません。インポートをコメントアウトすると、サーバーの起動は成功しますが、任意のページにアクセスしようとするAttributeError: 'Settings' object has no attribute 'ROOT_URLCONF'と、設定に何か問題があることがわかります (おそらく、正しく検出されていないのでしょうか?)。

4

2 に答える 2

1

http://packages.python.org/django-guardian/configuration.htmlの構成手順に従った後、プロジェクトがガーディアン (Django 1.4 を使用) でスムーズに実行されることを確認しました。

...そしてあなたの質問に答えるには:

  1. 設定モジュール内のものをインポートしないようにしてください。その場合は、循環インポートの問題がないことを確認してください。実際、あなたはまさにその問題を抱えています。必要に応じて、*post_syncdb* シグナルを使用できます: (https://docs.djangoproject.com/en/dev/ref/signals/#post-syncdb)。ただし、そのインポートを削除するとコマンドの実行に関する問題が修正されたとすでに述べているため、必要ありません(したがって、設定モジュールはassignとにかくショートカットを使用していません)。

  2. ROOT_URLCONF属性は必ず設定する必要があります (Django の組み込みコマンド (つまりdjango-admin.py startproject myproject) を使用してプロジェクトを生成する場合です)。それがない場合は、構成が壊れています。属性を次のようなもの'myproject.urls'(またはメインの URL がある場所)に設定してみてください。問題が解決するかどうかを確認してください。

于 2012-11-07T22:01:22.560 に答える
0

記録のために、私は最後の公式リリースで同じ問題に遭遇しました(単純な pip install django-guardian でインストールされました)

これは、 lukaszb の git リポジトリからバージョンをインストールした場合には発生しません。ソース コードを再確認しました。

于 2013-12-03T18:50:15.293 に答える