2012-12-31 15 views
6

私はdjango authに基づいて認証システムを持っていますが、ユーザーに情報を追加する必要があります。 django 1.5でこれを行う最善の方法は何ですか? (1.4では、ユーザーにonetooneでリンクされたプロファイルを使用していましたが、今ですか?)Django 1.5:ユーザーと追加情報

答えて

9

Django1.5はextendable User modelsである。基本的には、抽象基本ユーザモデルを拡張し、フィールドや何かを追加してそこから使用することができます。

基本モデルには、認証の基本事項(パスワードフィールドと前回のログイン時のフィールド)しかありません。独自のユーザー名フィールドを作成する必要があります。現在のDjangoユーザーモデル(ユーザーネーム、姓、名字など)に慣れている場合は、AbstractUserとして存在し、AbstractBaseUserの代わりに拡張して独自のフィールドを追加することもできます。

+1

ええ、私はその文書を読んでいます。しかし、私はAbstractBaseUserを実装したくありません。私が必要とするのは、すでにUserですからです。私は物事を追加するだけです。だから、それをコード化する方法は? – tapioco123

+0

ユーザーは基本的にAbstractUserと同じですが、SWAPPABLEアトリビュート(それが何であれ)はhttps://github.com/django/django/blob/master/django/contrib/auth/models.py#L457です。だから、あなた自身のモデルをAbstractUserから継承させるだけです。 – justinas

+0

私は継承しましたが、syncdbに次のエラーがあります:CommandError:1つ以上のモデルが検証されませんでした。 account.user:関連するm2mフィールド 'Group.user_set'との 'group' 'groups'の定義にrelated_name引数を追加します。 account.user:m2mフィールドのアクセサ 'user_permissions'が関連するm2mフィールド 'Permission.user_set'と衝突します。 'user_permissions'の定義にrelated_name引数を追加します。 auth.user:m2mフィールド 'グループ'のアクセサが関連するm2mフィールド 'Group.user_set'と衝突します。 'groups'の定義にrelated_name引数を追加します。 – tapioco123

0

を作成する必要があります。ユーザープロファイルは廃止予定です。

+0

「プロファイル」を使用してユーザーモデルを拡張することは推奨されていません。 'development 'django docsと1.7 docsの両方がこれを最初の解決策として提示し、AUTH_USER_MODELはかなり重い警告と影響を伴います。 – GreenAsJade

+0

' AUTH_PROFILE_MODULE'は[django 1.5で非推奨]です(https://docs.djangoproject .com/en/1.6/ref/settings /#auth-profile-module)を参照してください。 – dgel

関連する問題