django 사용자를 사용자 프로필로 확장하려면 https://stackoverflow.com/a/965883/1657010 링크를 따라야합니다. 나는 사용자 프로필 및 사용자 모두 생성 및 EMAILID, dateCreated 같은 사용자 프로필에서 사용자 정의 필드가 채워되도록 사용자를 만들려면 어떻게해야합니까 나는 확실하지 않다 무엇django (1.3)에서 사용자 프로필로 사용자 확장
#in models.py
from django.contrib.auth.models import User
from django.db.models.signals import post_save
class UserProfile(models.Model):
user = models.OneToOneField(User)
emailId = models.CharField(max_length=200)
dateCreated = models.DateTimeField(blank=True, null=True)
#other fields here
def __str__(self):
return "%s's profile" % self.user
def create_user_profile(sender, instance, created, **kwargs):
if created:
profile, created = UserProfile.objects.get_or_create(user=instance)
post_save.connect(create_user_profile, sender=User)
#in settings.py
AUTH_PROFILE_MODULE = 'myapp.UserProfile'
은? 나는
def register_user(request):
json_data = json.loads(request.raw_post_data)
email=json_data['email'].lower()
pwd = json_data['password']
#hard-coded values for testing
UserProfile.user = User.objects.create_user('john', email, pwd)
userProfile, created = UserProfile.objects.get_or_create(emailId=email)
userProfile.password=pwd
다음 한 views.py에서
는 그러나, 나는 오류 AttributeError를 얻을 : '사용자 프로필'개체가 어떤 속성 'USER_ID를'이 없습니다. 여기 어딘가에서 개념을 뒤섞어 쓰고 있다고 생각합니다. 어떤 도움을 주셔서 감사합니다.
답장을 보내 주셔서 감사합니다. 제공 한 코드가 작동했습니다! 모두가 비슷한 경우 궁금
user = User.objects.create_user('john', email, pwd)
userProfile = user.get_profile()
userProfile.emailId = email
user.save()
userProfile.save()
, 또는 다른 이상 하나의 장점은 다시()
감사를 get_profile를 사용하여 발생했을 경우 또한 다음과 같은 사용하여 동일한 작업을 수행 할 수 있었다!
감사 :
당신이 뭔가를 할 수 있습니다. 예, AUTH_PROFILE 모듈을 대체했습니다. –