0

デフォルトを外部キーとして使用するclass UserProfile定義があります。user今、別の人class Aはへの外部キーを持っていますUserProfile
したがって、クラスAのインスタンスを保存するには、userprofileオブジェクトを指定する方法を教えてください。

また、まだ使用されており、他のテーブルにすぎないclass UserProfile平均を作成しますか? ユーザープロファイルの作成を処理する必要があるため、これを知る必要があります。したがって、何がどこに保存されるかを知る必要がありますか? class userclass UserProfile

- 混乱している

4

2 に答える 2

1

UserProfileモデルは、ユーザーに関する追加情報を格納することを目的としていると思います。もしそうなら、これを行うための最良のアプローチに関するドキュメントがあります。簡単に言うと、次のとおりです。

  • OneToOneField保存する追加情報または使用可能にする追加のメソッドのフィールドを使用してモデルを定義し、モデルからユーザーモデルにを追加します。これにより、ユーザーごとにモデルのインスタンスを1つだけ作成できるようになります。
  • に設定AUTH_PROFILE_MODULEしますmyapp.MyModel。ここで、は、ユーザーに関する追加情報を保存するために使用するmyappモデルを含むアプリです。MyModel
于 2010-05-21T11:21:34.920 に答える
1

したがって、インスタンスをクラス A に保存するには、userprofile オブジェクトをどのように指定すればよいでしょうか。

  1. models.OneToOneField(User)またはを持つモデルでアプリを作成しますmodels.ForeignKey(User, unique=True)
  2. settings.py ファイルから UserProfile を指定して、プロジェクトに UserProfile を認識させますAUTH_PROFILE_MODULE = 'myapp.UserProfile'
  3. ドキュメントを読んでください。

また、クラス UserProfile を作成すると、クラス user がまだ使用されており、クラス UserProfile が他のテーブルにすぎないことを意味しますか?

はい、データベースにはauth_useruser_profileテーブルの両方があります。これは、UserProfiles を使用しても、すべてのユーザーがプロファイルを持つ必要があるわけではないためです。UserProfileモデルで定義された追加フィールドのみがuser_profileテーブルに表示されます。

ユーザープロファイルの作成を処理する必要があるため、これを知る必要があるため、何がどこに保存されるかを知る必要がありますか?

James Bennett が作成した 2 つの優れたアプリは、特にユーザー登録の部分に関しては、数時間注意して読むと非常に役立ちます。django-registrationdjango-profilesを見てください。

于 2010-05-21T11:50:34.120 に答える