1

重複の可能性:
django の auth_user.username を varchar(75) にすることはできますか? どうすればそれができますか?

カスタムのフォームレス認証バックエンドを使用する Django アプリケーションを継承しました。django.contrib.auth.models.Userこれは、SQL ハックによって30 文字の制限を回避しますALTER TABLE auth_user MODIFY COLUMN username varchar(90);。もちろん、これはデータベースに対してのみ有効であり、フォームに対しては有効ではありません。SQL を含むコードからすべてのハッキングを取り除こうとしているので、その制限を取り除く適切な方法を探しています。どのように削除することをお勧めしますか?

4

1 に答える 1

0

django.contrib.auth.models.Userモデルにそのような変更を加えるためのクリーンな方法は考えられません。実際、ほとんどすべての変更は注意が必要です。

UserProfile非常に不安定な方法の 1 つは、ユーザー名をモデルに委譲することです。UserProfileと 1 対 1 の関係を持つモデルを定義できますUser。次に、プロファイル モデルにフィールドを追加して、通常よりも長いユーザー名を保持する必要があります。

それだけではありません。物事をシームレスにするために、カスタム マネージャーを記述して、ユーザーのクエリ時にプロファイル フィールドのユーザー名が確実に使用されるようにする必要があります。

私はそれを綴ったので、上記の方法はまったく好きではありません。言うまでもなく、それはテストされていません。

于 2010-09-28T17:14:20.730 に答える