2012-08-09 37 views
0

我正在使用django-guardian處理對象權限。在我的settings.py:Django - 不正確配置錯誤,監護人的ANONYMOUS_USER_ID

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 

我懷疑這可能是由於這樣的事實,我做from guardian.shortcuts import assign在我的settings.py的頂部,但我不確定。註釋導入導致成功的服務器啓動,但嘗試訪問任何頁面會導致我提示AttributeError: 'Settings' object has no attribute 'ROOT_URLCONF'這表明完全設置有問題(可能它們未被正確找到?)。

回答

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'設置(或是其他地方,你的主要網址是),並檢查是否能解決問題。

0

爲了記錄在案,我遇到了同樣的問題與上次正式發佈(用一個簡單的點子安裝Django-監護人)

安裝

當你我時,這並不會發生從lukaszb's git repository安裝版本,我仔細檢查了源代碼

相關問題