我遇到了一个奇怪的问题....我有以下代码在我的本地开发中完美运行,但是当我在项目开发服务器中使用相同的代码时,我得到一个KeyError:'firstname' 要么我在这里遗失了一些非常愚蠢的东西,要么就是我不知道的东西。
def register(self,request, **kwargs):
try:
data = self.deserialize(request, request.raw_post_data, format=request.META.get('CONTENT_TYPE', 'application/json'))
print data
print " reached register"
email = data['email']
password = data['password']
firstname = data['firstName']
lastname = data['lastName']
newdata = {'email' : email , 'password1': password , 'password2':password, 'firstname':firstname , 'lastname':lastname }
日志输出如下:
[Wed Jul 31 21:42:24 2013] [error] {u'lastName': u'Adams', u'password': u'pass', u'email': u'samad@g.com', u'firstName': u'Sam'}
[Wed Jul 31 21:42:24 2013] [error] reached register
[Wed Jul 31 21:42:24 2013] [error] ERROR:root:'firstname'
[Wed Jul 31 21:42:24 2013] [error] Traceback (most recent call last):
[Wed Jul 31 21:42:24 2013] [error] File "/home/ubuntu/djangoEC/userdetails/api.py", line 102, in register
[Wed Jul 31 21:42:24 2013] [error] firstname = data['firstName']
[Wed Jul 31 21:42:24 2013] [error] KeyError: 'firstname'
Phew,任何想法?
答案 0 :(得分:1)
您的代码会查找'firstName'
,但例外情况为'firstname'
。注意这个案子。您的真实代码中的'firstname'
(或您的真实数据中包含'firstname'
,或其他一些案例不匹配错误),或data
是一些奇怪的类似dict的对象,它会降低键在查找。我怀疑这是第一个答案。
答案 1 :(得分:-1)
@tdelaney回答。使用数据[u'firstName']解决了这个问题。