Skip to main content
 首页 » 编程设计

python之Django 'long' 对象没有属性 'member'

2024年08月28日29cmt

我正在尝试处理当用户尝试通过我的 Tastypie API 登录时抛出的异常,但我不确定语法是否正确。

def login(self, request, **kwargs): 
    self.method_check(request, allowed = ['post']) 
 
    data = self.deserialize(request, request.body, format = request.META.get('CONTENT_TYPE', 'application/json')) 
 
    username = data.get('email', '') 
    password = data.get('password', '') 
    print username 
    #print password 
 
    user = authenticate(username = username, password = password) 
    #member = user.member 
    #print user  
 
    if user: 
        if user.is_active: 
            login(request, user) 
            user = user.id 
 
            try: 
                print 'user has member' 
                member = user.member.id 
                return self.create_response(request, {'success' : True, 'member' : member}) 
            except ObjectDoesNotExist: 
                print 'user does not have member' 
                return self.create_response(request, {'success' : True, 'member' : False}) 
 
 
 
 
        else: 
            return self.create_response(request, {'success' : False, 'reason' : 'disabled'}, HttpForbidden) 
    else: 
        return self.create_response(request, {'success' : False, 'reason' : 'incorrect'}, HttpUnauthorized) 

错误在 try 中的 member = user.member.id 处给出。

member = user.member.id\n\nAttributeError: 'long' object has no attribute 'member' 

非常感谢任何帮助。

请您参考如下方法:

以下行用id 属性值覆盖user; user 现在引用 long 对象;导致 AttributeError。

    user = user.id 

删除该行。