Django (Django 1.5 with Python 2.7.4) アプリで 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」は削除できましたが、括弧とコンマは削除できませんでした。