我正在尝试在我的 Django(带有 Python 2.7.4 的 Django 1.5)应用程序中进行 Facebook 登录,当我尝试将INSERT
登录用户的位置名称输入我的 MySQL 数据库时,该表会保存一个带括号的字符串和一个逗号。
例如,如果位置的名称(我访问序列化一个 JSON 对象并键入facebookMember['location']['name'])
是“Turdera”,当我查看我的数据库时,存储的值是"(u'Turdera',)"
。它只在我调用Model.save()
函数时发生,所以它不会发生当我将位置名称直接放在创建函数上时(Model.objects.get_or_create())
。
这是 JSON:
{u'username': u'nombre.apellido', u'first_name': u'Nombre',
u'last_name': u'Apellido', u'verified': True,
u'name': u'Nombre Apellido', u'locale': u'en_US',
u'hometown': {u'id': u'104026979634226', u'name': u'Turdera'},
u'work': [{u'position': {u'id': u'416940894990201',
u'name': u'Software Developer'},
u'start_date': u'0000-00',
u'employer': {u'id': u'2176879549', u'name': u'Empresa'}}],
u'email': u'email@hotmail.com',
u'updated_time': u'2013-08-09T17:30:17+0000', u'birthday': u'05/08/1987',
u'link': u'https://www.facebook.com/nombre.apellido',
**u'location': {u'id': u'104026979634226', u'name': u'Turdera'}**,
u'gender': u'male', u'timezone': -3,
u'education': [{u'school': {u'id': u'18143905522',
u'name': u'ITMaster Professional Training'},
u'type': u'College'},
{u'school': {u'id': u'1089762591',
u'name': u'Pontifical Catholic University'},
u'type': u'College'}], u'id': u'655273058'}
这是保存功能的代码:
obj, created = Member.objects.get_or_create(id=long(facebookMember['id']))
if (obj.first_login == None):
obj.first_login=datetime.now()
obj.first_name=facebookMember['first_name']
obj.last_name=facebookMember['last_name']
obj.email=facebookMember['email']
obj.locale=facebookMember['locale']
obj.access_token=facebookMember['access_token']
obj.location=(facebookMember['location']['name'] if 'location' in facebookMember else None),
obj.gender = Utils().getInitialFromGender(facebookMember['gender'])
obj.date_of_birth = Utils().getDateAsYYYYMMDD(facebookMember['birthday'])
obj.last_login=datetime.now()
obj.save()
我可以删除“u”,但不能删除括号和逗号。