2017-02-15 26 views
1

訪問這是我的信號:AttributeError的:經理無法通過UserBillingHistory情況

@receiver(post_save, sender=settings.AUTH_USER_MODEL) 
def create_auth_token(sender, instance=None, created=False, **kwargs): 
    """Receiver to create authoriasation tokens for users""" 

    if kwargs.get('raw'): 
     return # ignore for loading fixtures 
    import pdb; pdb.set_trace() 
    if created: 
     Token.objects.create(user=instance) 
     UserBillingHistory.objects.create(user=instance) 

     if settings.NEW_USER_EMAIL is not None: 
      send_email(
       "Spotless data - new user", 
       "New user with email %s has signed up" % instance.email, 
       "Spotless Data<[email protected]>", 
       settings.NEW_USER_EMAIL 
       ) 

這是我的模型:

類UserBillingHistory(models.Model):

user = models.ForeignKey(User, on_delete=models.CASCADE) 
description = models.TextField(max_length=500, blank=False, default="Free 100Mb on sign-up and Buy $40 and get 100Mb") 
cash_amount = models.DecimalField(max_digits=9, decimal_places=2) 
data = models.IntegerField(null=False, blank=False) 
date = models.DateTimeField(default=timezone.now, blank=False, null=False) 
is_confirmed = models.BooleanField(default=False) 
job = models.ForeignKey("Job", on_delete=models.SET_NULL, null=True) 

@property 
def user_can_view(self, user): 
    return (self.user == user) 

def user_can_edit(self, user): 
    return (self.user == user) 

def user_can_delete(self, user): 
    return (self.user == user) 

def get_absolute_url(self): 
    return "/userbillinghistorys/%s/" % self.id 

def cash_amount(self): 
    return "$%s" % 0 

def data(self): 
    return 100 * 1024 * 1024  

def __unicode__(self): 
    return u'%s' % self.description 

當我嘗試創建新的用戶註冊,我得到的錯誤以下。 AttributeError的:經理通過UserBillingHistory實例

是無法訪問的

UnicodeEncodeError:「字符映射」編解碼器不能編碼 - 字符映射到

而且關於這種模式在默認情況下會顯示內容,以數據爲100 * 1024 * 1024和cash_amount = 0。 你可以請建議關於它謝謝。

+1

您可以添加完整的錯誤跟蹤?你能打印'instance'來確認你在那裏做用戶實例嗎? –

+0

AttributeError的在/帳號/註冊/ 經理無法通過UserBillingHistory情況 請求方法訪問:\t POST 請求URL:\t的http://本地主機:8000 /帳號/註冊/ Django的版本:\t 1.9 異常類型: \t AttributeError的 異常值:\t 經理通過UserBillingHistory情況下是無法訪問的 異常地點:\t C:\ Python34 \ LIB \站點包\ Django的\ DB \型號\ manager.py在__get__,線250個 – user7139980

+0

謝謝但是這沒有完整的跟蹤:) –

回答

0

對於您的評論中提到的錯誤,更換:

def __unicode__(self): 
    return "%s" % "Free 100Mb on sign-up and Buy $40 and get 100Mb" 

有:

def __unicode__(self): 
    return u"Free 100Mb on sign-up and Buy $40 and get 100Mb" 
+0

通過這也得到unicodeencode錯誤。我是調試,但錯誤就像這裏。 ()); c:\ python34 \ lib \ site-packages \ allauth \ account \ views.py(195)form_valid() - > self.get_success_url()) (Pdb)n UnicodeEncodeError:'charmap'codec can not encode字符'\ u2019'在位置 512:字符映射到 user7139980

+0

我正在使用python 3版本 – user7139980

+0

啊,它來自self.get_success_url()。這是有道理的,看看我的其他答案。 –