Djangoでユーザープロファイルを操作することは不幸にすぎないことは秘密ではありません。 私たちはみな、
auth.Userモデルのモノリシック性、その中の不適切なフィールドセット、および使用しなければならないすべてのトリックに直面しました。
誰もが倒錯しなければなりませんでした。dzhangaのユーザーだけでなく、中核となる開発者自身に対してもです。 たとえば、Django 1.2では、
usernameフィールドで犬の文字(@)と
usernameを使用できるようになったのを覚えてい
usernameか? 理由を知っていますか? メールアドレスをログインとして使用
できるようにし
ます 。
私たち一般のユーザーも苦労しました。 ユーザーにいくつかの興味深いフィールドを追加してユーザーのプロファイルを変更するために-一見普通のことですよね? -さまざまな方法で行動しなければなりませんでした。
サルといえば......
伝説的な
sorl.thumbnailを世界に与えた男たちは、再び卓越し、アカウントで別のキラーなものを作りました。 出会い:
django- auth.Userメソッドを使用するアプリケーション(霊長類とサル、相関関係を感じられますか?)自分のモデルを
auth.User に非常に簡単に変えることができます。 つまり、ロシア語では、目的のフィールドのプロファイルを作成します。
始めるのは簡単です。 まず、django-primateを配置する必要があります。 PyPIで可能です:
pip install django-primate
...また、リポジトリから最新バージョンを取得することもできます。
pip install -e git+https://github.com/aino/django-primate.git
起動時にパッチを呼び出す必要があります。 作成者は、
manage.py使用することをお勧めします
あとは、使用するモデル
settingsクラスを
settings指定するだけです
AUTH_USER_MODEL = 'users.models.User'
...そして、あなたはモデルを考え出すことができます:
これで、プロジェクトコンポーネント
django.contrib.auth.models.User users.models.User django.contrib.auth.models.Userたびに、
users.models.Userモデルを受け取ります。 逆もまた真です。 管理パネルには自動的にパッチが適用され、接続には特別な手順は必要ありません。
デフォルトでは、django-
auth.Userユーザーモデルには
auth.User次の違いがあります。
- フィールド
first_nameおよびlast_nameれますが、 name追加されます。 usernameフィールドの最大長は50文字です( auth.Userでは30文字)emailフィールドに一意のインデックスが追加されていますget_profileメソッドはself返すため、 user.get_profile()を使用してコードを心配することはできません。
それ以外の場合、霊長類のユーザーモデル
はアヒルのように歩き、アヒルのように泳ぎ、アヒルのように鳴きます。それは、ジャンゴフスキーのソースと非常によく似ています。
もちろん、絶対に任意のフィールドセットを使用できますが、この場合、サードパーティアプリケーション間で互換性がなくなるリスクがあるため、
username 、
password 、および
emailフィールドの名前を変更しないことをお勧めします。
別のポイント:jungaとの互換性のために、霊長類は
app_labelが
usersはなく(例のように)
authなるようにモデルをダウンロードします。 これは、しばらくの間理由を理解できないかもしれない南のユーザーに特に当てはまります。
./manage.py schemamigration users --auto
移行は作成されません。
しかし、誰もが私が非常に自由に翻訳したREADMEに精通することができます。 私が何かを見逃したり、間違えたり、不正確にしたりした場合は、コメントを書いたり、あなたの考えを共有してください。
ご清聴ありがとうございました:)