2017-01-26 3 views

答えて

1

最初はmulti table inheritanceです。 (私は、あなたが実際にdjango.contrib.auth.models.Userのここにspeackingしていると推測します)。新しいUserモデルには、djangoのユーザモデルで定義されているすべてのフィールドがあります。これはdjangoがモデルにOneToOneFieldを暗黙的に作成することによって管理されます。

2番目はOneToOneFieldを自分で作成しています。現在、django.contrib.auth.model.Userモデルのフィールドは、あなた自身のモデルの一部として自動的には表示されません。 Userモデルからオプション1 you should inherit from an abstract base class直接ではなくのために、このすべてを言って

myinstance.user.parent_field 

としてあなたはまだそれらにアクセスすることができます。

class MyUser(AbstractBaseUser): 
    ... 
+0

恐ろしい、ありがとう!そして、最初の例では、私が見逃したAuthuserとしてdjango.contrib.auth.models.Userからインポートエイリアスがありました。抽象基本クラスを使用する方が良い理由は何ですか? – bufferoverEB2A

+1

抽象基本クラスを使用しない場合、2つのテーブルがデータベースではなく1つ作成されます。 – e4c5

+0

ありがとう!良い一日を過ごしてください! – bufferoverEB2A

関連する問題