2012-12-31 71 views
6

我有一個基於django auth的認證系統,但我必須添加信息給用戶。 在django 1.5中做什麼最好的方法是什麼? (在1.4中,我使用的是與onetoone鏈接的配置文件,但現在呢?)Django 1.5:用戶和附加信息

回答

9

Django 1.5有extendable User models。基本上,你可以擴展一個抽象的基本用戶模型,添加你的領域和任何東西,並從那裏使用它。

基本模型只具有認證的基礎 - 密碼字段和上次登錄時的字段。你甚至必須創建你自己的用戶名字段。如果您對當前的Django用戶模型(包括用戶名,名字,姓氏等)感到滿意,它也可以作爲AbstractUser存在,您可以擴展它而不是AbstractBaseUser並添加您自己的字段。

+1

是的,我閱讀了文檔。但我不想實現一個AbstractBaseUser,因爲我需要的是用戶。我只需添加一些東西。那麼,如何編碼? – tapioco123

+0

用戶基本上與AbstractUser相同,但具有SWAPPABLE屬性(無論它用於什麼)https://github.com/django/django/blob/master/django/contrib/auth/models.py#L457。所以,只要讓你自己的模型繼承AbstractUser即可。 – justinas

+0

我繼承了,但在syncdb上我遇到了以下錯誤:CommandError:一個或多個模型未驗證: account.user:m2m字段'groups'與相關m2m字段'Group.user_set'衝突的訪問器。將'related_name'參數添加到'groups'的定義中。 account.user:m2m字段'user_permissions'的訪問者與相關m2m字段'Permission.user_set'發生衝突。爲'user_permissions'的定義添加一個related_name參數。 auth.user:m2m字段'組'的訪問器與相關的m2m字段'Group.user_set'發生衝突。將'related_name'參數添加到'groups'的定義中。 – tapioco123

0

在django 1.5中,您應該創建一個custom user model。用戶配置文件現已棄用。

+0

它在哪裏說使用「配置文件」擴展用戶模型已棄用? '開發'django文檔和1.7文檔都將這作爲第一個解決方案,而AUTH_USER_MODEL帶有一些相當嚴重的警告和暗示...... – GreenAsJade

+0

'AUTH_PROFILE_MODULE' [已棄用django 1.5](https://docs.djangoproject的.com/EN/1.6/REF /設置/#AUTH-輪廓模塊)。 – dgel