2015-12-03 62 views
0

我想从模型中的用户到一个观点,但是我不断收到一个错误类型:Django的Allauth - int()函数的参数必须是字符串或数字,而不是“ReverseSingleRelatedObjectDescriptor”

类型错误 - int()函数的参数必须是字符串或数字,而不是“ReverseSingleRelatedObjectDescriptor”

当我到了用户我有以下几点: django.db.models.fields.related.ReverseSingleRelatedObjectDescriptor对象在0x7f4a15299590

Models.py

@python_2_unicode_compatible 
class SocialAccount(models.Model): 
    user = models.ForeignKey(allauth.app_settings.USER_MODEL) 
    provider = models.CharField(verbose_name=_('provider'), 
           max_length=30, 
           choices=providers.registry.as_choices()) 

    uid = models.CharField(verbose_name=_('uid'), 
          max_length=app_settings.UID_MAX_LENGTH) 
    last_login = models.DateTimeField(verbose_name=_('last login'), 
             auto_now=True) 
    date_joined = models.DateTimeField(verbose_name=_('date joined'), 
            auto_now_add=True) 
    extra_data = JSONField(verbose_name=_('extra data'), default='{}') 

    class Meta: 
     unique_together = ('provider', 'uid') 
     verbose_name = _('social account') 
     verbose_name_plural = _('social accounts') 

    def authenticate(self): 
     return authenticate(account=self) 

    def __str__(self): 
     return force_text(self.user) 

Views.py

from allauth.socialaccount.models import SocialToken, SocialAccount 
def sc(request): 
    user = SocialAccount.user 
    token = SocialToken.objects.filter(account__user=user, account__provider='soundcloud') 
+0

你能编辑你的问题发布你的完整stacktrace吗? –

+0

@ShangWang我应该更新什么问题? – Juanvulcano

回答

1

在您看来,SocialAccount是模型本身,而不是它的一个特定实例。您需要实际查询您想要的帐户,就像您使用令牌一样。

但我不确定你为什么要用SocialAccount做任何事情。你真的想要用户,这大概只是request.user;改用它。

+0

你让我的一天:)谢谢 – Juanvulcano

相关问题