2012-05-12 13 views
4

初めてDjango-social-authを使用しています。新しいユーザーはすべて、私のDjango Webサイトのsocial_authアプリケーションのユーザーモデルに登録されているようです。私はいくつかの特定のデータ(サイト内のユーザー活動と他のエンティティとの関係に関連する)を持つユーザーと呼ばれる別のモデルを持っており、ユーザーのFacebookプロファイル(ユーザー名、プロフィール画像など)から取得したデータをユーザー私が作ったモデル。 social_authユーザーを拡張する方法はありますか?Djangoでsocial_authユーザーモデルを拡張する

EDIT ジャンゴ・社会的・認証ドキュメントを読んだ後、私は次のように私のUserクラスを編集した:

# User model 

クラスのユーザー(models.Model):

username = models.CharField(max_length=30) 
last_login = models.DateTimeField(blank=True) 
is_active = models.BooleanField(default=False) 
playedHours = models.FloatField(default = 0) 


userSlug = models.SlugField(unique = True)  

playedSongs = models.ManyToManyField(Song, blank=True, null = True) 
invitedFriends = models.ManyToManyField('self', blank = True, null = True) 

def __unicode__(self): 
    return self.name 

をまた、どのように私はユーザーのプロフィール画像、友達リストなどを取得できますか? 私はこのメカニズムを理解していません。

ありがとうございます!ドキュメントから

答えて

4

github必要であり、それをCustomUserManagerと呼んだ。ここで

はコードです:助けを

SOCIAL_AUTH_USER_MODEL = 'myappname.User' 

ありがとうArgsKwargs:私のsettings.pyで

class User(models.Model): 
    username = models.CharField(max_length=30) 
    last_login = models.DateTimeField(blank=True, null=True) 
    is_active = models.BooleanField(default=False) 
    playedHours = models.FloatField(default = 0) 

    objects = CustomUserManager() 

    playedSongs = models.ManyToManyField(Song, blank=True, null = True) 
    invitedFriends = models.ManyToManyField('self', blank = True, null = True) 

def __unicode__(self): 
    return self.username 

def is_authenticated(self): 
    return True  

class CustomUserManager(models.Manager): 
    def create_user(self, username, email): 
     return self.model._default_manager.create(username=username) 

は、その後、私は私のUserクラスを変更しました: )

2

これは、必要に応じて使用Userモデルを上書きすることが可能です:

SOCIAL_AUTH_USER_MODEL = 'myapp.CustomUser'

ソース:私のようにカスタムのマネージャクラスを作成し

+0

私はプロの方法を理解していませんシード。 create_user()メソッドが見つかりません。 Model Managerとcreate_userメソッドを追加するにはどうしたらいいですか?申し訳ありませんが、これはDjango-social-authで初めてのことです –

関連する問題