0

こんにちは私はUserProfile自分のアプリに固有のユーザーデータを保存するために使用するカスタムモデルを持っています:

from django.contrib.auth.models import User

class UserProfile(models.Model):
    user = models.OneToOneField(User)
    ...

    def __unicode__(self):
        return self.user.username

私はdjango-registrationユーザーの抵抗とログインに使用しています。

UserProfile私の質問は、オブジェクトを保存するときにオブジェクトを自動保存するための最良の方法は何auth.Userですか?UserProfileモデルのすべてのカスタムフィールドをnullとして保存し、後で更新できると想定できます。

どんな助けでも大歓迎です。

4

2 に答える 2

1

DjangoSignalsは良いオプションかもしれません。したがって、Userオブジェクトが保存されるたびに、ユーザープロファイルが作成されます。

class UserProfile(models.Model):
    user = models.OneToOneField(User)

def _create_user_profile(sender, instance, created, **kwargs):
    UserProfile.objects.create(user=instance)

post_save.connect(_create_user_profile, sender=User)
于 2012-11-05T19:37:14.790 に答える
0

ユーザープロファイルがまだ存在しない場合に作成するには:これをプロファイルのモデルファイルに入れます。

User.profile = property(lambda u: UserProfile.objects.get_or_create(user=u)[0])

そして、例えばrequest.user.profileあなたがそれにアクセスしたいときに使用してください。

于 2012-11-05T20:11:50.923 に答える