0

django で User オブジェクトを拡張しており、ユーザー プロファイルを持っています。したがって、post_save フックを使用して、次の方法でユーザー プロファイルを保存します。

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

def create_user_profile(sender, instance, created, **kwargs):
    if created:
        userObj, createdUser = UserProfile.objects.get_or_create(user=instance)

post_save.connect(create_user_profile, sender=User)

python manage.py shell; 経由でシェルを実行すると正常に動作します。ユーザーオブジェクトとユーザープロファイルをテーブルに保存しますが、リクエストを起動してテストする場合、そのリクエストを処理するviews.pyで次のことを行います

def handleRequest(request):
    user = User(username="test",email="test",password="test")

    user.save()

もちろん、HttpResponse を作成して応答も返しましたが、簡潔にするために省略しました。結果は、auth_user に保存されたユーザー エントリを取得しますが、ユーザー プロファイルは取得しません。何の契約?助けてください。

4

1 に答える 1

1

ユーザー プロファイルに関係があるため、ユーザー プロファイルにアクセスできません。

フィールドを追加する必要があります。

class UserProfile(models.Model):
    url = models.URLField()
    home_address = models.TextField()
    phone_numer = models.PhoneNumberField()
    user = models.ForeignKey(User, unique=True)

詳細については、次のリンクを確認してください

http://www.b-list.org/weblog/2006/jun/06/django-tips-extending-user-model/

于 2011-06-05T02:11:56.877 に答える