2016-07-27 4 views
1

私のサイトでユーザの認証と登録の両方にdjangoのユーザモデルを使用したいと思います。私はちょうど国のフィールドであるユーザーモデルに別のフィールドを追加する必要があります。既存のユーザーモデルに国を追加するにはどうすればよいですか?Djangoカスタムユーザモデル

+4

ユーザモデルを拡張する上で、[ドキュメントを参照してください。 ](https://docs.djangoproject.com/en/1.9/topics/auth/customizing/#extending-the-existing-user-model)。 – solarissmoke

+0

他の人が言っていることに加えて、実行しているdjangoのバージョンに依存している可能性があります。あなたの質問にその情報を含めてください。 –

答えて

1

custom user modelを定義する方法は多数あります。

使用すると、1つのフィールドを追加したい場合は、基本的には既存のユーザ・モデル拡張することができます。

from django.contrib.auth.models import AbstractBaseUser 

class MyUser(AbstractBaseUser): 
    country = models.ForeignKey(Country, models.SET_NULL, blank=True, null=True) 

をし、設定モジュールにAUTH_USER_MODELを設定します。

AUTH_USER_MODEL = 'yourapp.MyUser' 
1

これは、OneToOneFieldを使用すると、hereとなります。

from django.contrib.auth.models import User

以下の例を追加し、あなたのプロフィール/ models.pyファイルでは、あなたのsettings.pyファイル
  • にアプリを追加アプリ(例えばpython manage.py startapp profile
  • を作成します。
    class Profile(models.Model): 
        user = models.OneToOneField(User, on_delete=models.CASCADE) 
        country = models.CharField('country', max_length=120) 
    
  • +0

    コードが見えて申し訳ありません。私はそれを正しくフォーマットすることができません。 – joshlsullivan

    関連する問題