2014-04-26 1 views
0

이 같은 내 MyProfile의 모델에 추가 필드를 포함해야 .. 내가 편집하려고하면 가입 후 지금 를 포함한 추가 필드는 프로필 userena

import uuid 
import base64 
from django.db import models 
from django.contrib.auth.models import User 
from django.utils.translation import ugettext_lazy as _ 
from django.db.models.signals import post_save 
from userena.models import UserenaBaseProfile 
from userena.utils import user_model_label 

class MyProfile(UserenaBaseProfile): 
    user = models.OneToOneField(User,unique=True, 
          verbose_name=_('user'),related_name='my_profile') 
    favourite_snack = models.CharField(_('favourite snack'),max_length=5) 
    referral_code = models.CharField(max_length=300, blank=True, null=True) 

    def get_absolute_url(self): 
     return u'/profile/show/%d' % self.id 
    def generate_verification_code(self): 
     return base64.urlsafe_b64encode(uuid.uuid1().bytes.encode("base64").rstrip())[:25] 
    def save(self, *args, **kwargs): 
     if not self.pk: 
      self.referral_code = self.generate_verification_code() 
     elif not self.verification_code: 
      self.referral_code = self.generate_verification_code() 
     return super(MyProfile, self).save(*args, **kwargs) 

이 추천 코드가 생성되고, ok.But 먹으 렴 난 내 MyProfile의 모델에서 새 필드 (추천 코드)를 추가 한 때문에 userena 프로필 편집 옵션을 사용하여 내 프로필, 난 단지처럼 그 ...

AttributeError at /accounts/veer/edit/  
'MyProfile' object has no attribute 'verification_code' 

이 오류 모금가 오류에 직면하고있다? 그런 경우 새로운 영역 (예 : referral_code)을 userena와 함께 조정하려면 어떻게해야합니까?

답변

0

추측하면 referral_code를 속성 입력란으로 사용할 수 있습니다. 대신 modelField의

class MyProfile(UserenaBaseProfile): 
     user = models.OneToOneField(User,unique=True, 
         verbose_name=_('user'),related_name='my_profile') 
     favourite_snack = models.CharField(_('favourite snack'),max_length=5) 

     def get_absolute_url(self): 
     return u'/profile/show/%d' % self.id 
     def generate_verification_code(self): 
     return base64.urlsafe_b64encode(uuid.uuid1().bytes.encode("base64").rstrip())[:25] 
     def save(self, *args, **kwargs): 
     if not self.pk: 
      referral_code = property(generate_verification_code) 
     elif not self.verification_code: 
      referral_code = property(generate_verification_code) 
     return super(MyProfile, self).save(*args, **kwargs) 

은 관리자에 referral_code 필드를 포함합니다. print (self.instance.referral_code)

+0

오류 발생 ** 새 사용자 등록 또는 등록을 시도하는 동안 ** 전역 이름 'generate_verification_code'가 정의되지 않았습니다. ** Ria – zogo