2017-12-17 10 views
0

実際には、すべてのユーザーの名前、ユーザー名、パスワード、年齢、性別などの詳細を保存する必要があるプロジェクトに取り組んでいます。プロジェクト用にdjango 1.11のデフォルトユーザーモデルを使用する必要があります

このウェブサイトでは、どのユーザーも自分のアカウントにログインして情報を編集できます。

だから私は1人のユーザーに関するいくつかの制限されたフィールドを保存するデフォルトのユーザーモデルを使用するか、新しいモデルにはDjangoで

答えて

0

デフォルトのユーザーモデルを作成する必要があります。あなたは誕生日、専門知識、ユーザーとの一対一をリンクしなければならないモデルをUSERPROFILE記述する必要が性別のようなユーザの他の情報を保存する場合フィールドが

first_name, last_name, email, password, groups, user_permissions, is_staff, is_active, is_superuser, last_login, date_joined 

です。

例:

from django.contrib.auth.models import User 
class UserProfile(models.Model): 
     user = models.OnetoOneField(User) 
     birthday = models.DateTimeField(default=datetime.datetime.now) 
     skills = models.CharField(max_length=128) 
0

私はあなたがAbstractUserをサブクラス示唆しています。このオプションは、DjangoのUserフィールドで問題ないが、余分なフィールドが必要な場合に適しています。とにかくこれを行うには、Django documentationもお勧めします。

新しいプロジェクトを開始している場合、非常にデフォルトのユーザー・モデルはあなた のために十分であったとしても、 カスタム・ユーザー・モデルを設定することをお勧めします。このモデルは、デフォルトのユーザモデルと全く同じに動作しますが、 あなたは、必要が生じた場合、将来的にそれをカスタマイズできるようになります:

from django.contrib.auth.models import AbstractUser 

class User(AbstractUser): 
    pass or additional fields here ... 

ます。また、作成または実行する前に、このモデルを指すように持っています設定で任意の移行:ユーザーのためのカスタム・ユーザー・モデルを作成したい場合は

AUTH_USER_MODEL = 'yourapp.User' 
0

実は、これはDjangoの公式documentationで述べています。あなたが最初AbstractUserクラスとカスタム・ユーザー・モデルを継承し、その後


AUTH_USER_MODEL =「mycustom_user_app.MyCustomUser」に言及することによって、あなたの設定ファイルにそのカスタムユーザーを指している必要があることを達成するために。


今、内部のプロジェクトのためのUserモデルであるモデルを知っている、とあなたは、カスタムユーザーのすべてのモデルマネージャ(例えば。CREATE_USER、など)にアクセスすることができますジャンゴ。このようにして、現在のモデルフィールドを使用して、さらにフィールドを追加することができます。それはドキュメントに記載されているようにユーザーモデルをカスタマイズするための正当な方法です

関連する問題