2013-05-16 2 views
3

, поэтому я пытаюсь сохранить модель django, и по какой-то причине я получаю только 500 внутренних ошибок сервера. дело в том,Модель Django не сохраняется при вызове save()

если я комментировать social_auth.save() она работает, и я могу манипулировать объект, но не сохранить его

почему это происходит? Я использую django tastypie, и я пытаюсь сохранить экземпляр django-social-auth.

def obj_create(self, bundle, request=None, **kwargs): 
    try: 
     #this is not supposed to upgrade password 
     bundle = super(UserResource, self).obj_create(bundle) 
     bundle.obj.save() 
     if bundle.data.get('extra_data') != None: 
      print bundle.data.get('extra_data') 
      fb_id = bundle.data.get('extra_data')['id'] 
      #social_auth=UserSocialAuth(user_id = bundle.obj, provider=bundle.data.get('provider'),uid=fb_id,extra_data=bundle.data.get('extra_data')) 
      social_auth=UserSocialAuth() 
      social_auth.user_id = bundle.obj 
      social_auth.provider=bundle.data.get('provider') 
      social_auth.uid=fb_id 
      social_auth.extra_data=bundle.data.get('extra_data') 


      print "social: ",social_auth.extra_data 
      social_auth.save() 

    except IntegrityError: 
     raise BadRequest('Username already exists') 

    return bundle 

отслеживающий:

Traceback (most recent call last): 
    File "temp_3.py", line 23, in <module> 
    post() 
    File "temp_3.py", line 18, in post 
    f = urllib2.urlopen(req) 
    File "/usr/lib/python2.7/urllib2.py", line 126, in urlopen 
    return _opener.open(url, data, timeout) 
    File "/usr/lib/python2.7/urllib2.py", line 406, in open 
    response = meth(req, response) 
    File "/usr/lib/python2.7/urllib2.py", line 519, in http_response 
    'http', request, response, code, msg, hdrs) 
    File "/usr/lib/python2.7/urllib2.py", line 444, in error 
    return self._call_chain(*args) 
    File "/usr/lib/python2.7/urllib2.py", line 378, in _call_chain 
    result = func(*args) 
    File "/usr/lib/python2.7/urllib2.py", line 527, in http_error_default 
    raise HTTPError(req.get_full_url(), code, msg, hdrs, fp) 
urllib2.HTTPError: HTTP Error 500: INTERNAL SERVER ERROR 
+0

Что делает Скажите, скажите? – karthikr

+0

ничего, но я просто добавил трассировку выше – psychok7

+1

, если bundle.obj имеет тип 'User', тогда' social_auth.user_id = bundle.obj' ошибочен и должен быть 'social_auth.user = bundle.obj' –

ответ

2

если bundle.obj имеет тип User, то social_auth.user_id = bundle.obj неправильно и должно быть social_auth.user = bundle.obj

также убедитесь, что вы не в этом случае:

django-social-auth HTTP 500

+0

это работает для меня с этим небольшим изменением ... спасибо;) – psychok7

+1

Очень приятно поймать! –

Смежные вопросы