Django自定義用戶模型錯誤:Manager isn't available; User has been swapped”?


我擴展了Django用戶模型,如dev文檔中所描述的那樣。我不想保留大多數原始的用戶模型特性,所以我擴展了抽象用戶類。我在setings.py中定義了:

AUTH_USER_MODEL = 'user.User'

我的用戶類:

class User(AbstractUser):
  custom_field = models.ForeignKey('OtherModel')
  objects = UserManager()

一切看起來都很好,但是當我試圖讓它由管理站點管理時:

admin.site.register(User, UserAdmin)

我在ADMIN CustomUser Creation頁面(在驗證密碼確認表單后)獲得此錯誤:

AttributeError: Manager isn't available; User has been swapped for 'user.User'

關鍵是,我需要管理站點管理這個模型,以便與原始用戶模型具有相同的創建過程(兩個步驟進程,密碼驗證)。

分析:因為我們定義抽象模型類,並且在settings中設置了

# django認證系統使用的模型類
AUTH_USER_MODEL='user.User'

解決方法(將views中導入模塊的方式修改)

from django.contrib.auth.models import User
然后將其替換為:

from user.models import MyUser as User


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM