1

私は Django を初めて使用しますが、これまでのところ、(django.contrib.auth.models) からデフォルトのユーザー モデルに追加のモデルをアタッチする、かなり基本的なセットアップを行いました。私の accounts.models.py には、次のようなものがあります。

class UserExtension(models.Model):
    user = models.OneToOneField(User, primary_key=True)
    # more code

所有者を指定する必要がある別のモデルもあります。私の質問は次のとおりです。所有者を示すためのより良い(よりジャンゴ風で、より読みやすく、より効率的で、より柔軟な)方法はどれですか:

class Owned(models.Model):
    # code
    owner = models.ForeignKey(User)
    # more code

また:

class Owned(models.Model)
    # code
    owner = models.ForeignKey(UserExtension)
    # more code

これらのアプローチの長所と短所について言及していただければ幸いです。

4

2 に答える 2

0

最初のオプションをお勧めします。ユーザーモデルは、所有されたオブジェクトがユーザーなしでは存在できず、UserExtension なしで存在できるという意味で重要なモデルです。

また、Django 1.5 ではカスタム ユーザー モデルを作成できるため、UserExtension クラスが不要になることも考慮してください。詳細については、ドキュメントを参照してください。

于 2013-01-13T20:57:49.983 に答える
0

UserProfileユーザーごとのアドオン情報に使用することを検討してください。作り方はこちらのブログをご覧ください。これにより、ユーザーを作成するたびに UserProfile オブジェクトを作成していることを確認できます。

User または UserProfile のどちらで FK を使用するかは、Owned 内で何を行っているかによって論理的に異なります。Owned が User のデータ/フィールドで機能する場合、User の FK。UserProfile のデータで動作する場合は、UserProfile の FK。

于 2013-01-13T23:57:34.233 に答える