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に精通することができます。 私が何かを見逃したり、間違えたり、不正確にしたりした場合は、コメントを書いたり、あなたの考えを共有してください。
ご清聴ありがとうございました:)