0

django-registrationアプリをプロジェクトにプラグインしましたが、うまく機能します。新しいユーザーは登録してログインできます。ただし、私のアプリでは、ユーザーにプロファイル全体を提供し、取得した情報を使用したいと考えていますdjango-registration

django-registration からの情報と自分のアプリのユーザー モデルを関連付けるにはどうすればよいですか?

from django.contrib.auth.models import models as  auth_models
from django.contrib.auth.models import User

class User(User):

    username = auth_models.CharField(max_length=100)
    description = auth_models.TextField()
    picture = auth_models.ImageField(upload_to=something, blank=True, null=True) 
    location = auth_models.CharField(max_length=200) # please replace with GIS API

    email = auth_models.EmailField()
    password = auth_models.CharField(max_length=128)

    # during registration: did the user click
    # the sent activiation link?
    is_active = auth_models.BooleanField(default=False)
    appear_in_public_ranking = auth_models.BooleanField(default=True)

    def __unicode__(self):
        return self.username
4

1 に答える 1

2

Django 1.5 では、既存の User モデルの拡張が導入されました。これを直接使用して、新しいフィールドを追加できます。

ただし、以前のバージョンの Django を使用している場合は、次のようにします。

という新しいモデルを作成しProfile、必要なすべてのフィールドをそこに配置します。

from django.contrib.auth.models import User

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

次に、設定ファイルに次を追加します。

AUTH_PROFILE_MODULE = '<application_name>.Profile'

Profileここで、application_name は、モデルを作成したアプリの名前です。

サインインしているユーザーがいる場合は、 を使用request.user.get_profile()して、対応する Profile オブジェクトを取得できます。

于 2013-11-01T12:59:24.983 に答える