2013-01-20 54 views
1

我試圖將數據從Facebook的圖形查詢,返回位置信息的格式保存:Django模型CharField空字符串開始保存爲('',)?

friend: { 
    location: { 
     id: "106078429431815", 
     name: "London, United Kingdom" 
    }, 
} 

或站點關鍵是完全丟失,如果用戶沒有設置該變量,或者它的設置到'空'。

在模型中的位置字段被定義爲:

location = models.CharField(max_length=255, blank=True, null=True) 

我使用下面的代碼,這迎合了初始查詢以創建記錄,以及更新存儲在所述模型中的數據以防萬一值改變未來:

friend = get_facebook_friend(friend_id=friend_id) 
try: 
    location_name = data['location'].get('name', '') 
except: 
    location_name = '' 
if friend: 
    friend.name = data['name'] 
    friend.location = location_name, 
    friend.full_clean() 
    friend.save() 
else: 
    friend = Friend(
     name=data['name'], 
     location=location_name) 
    friend.full_clean() 
    friend.save() 

這似乎是工作得很好了第一說明書,其在數據庫中存儲值的位置列:

- 'London, United Kingdom' 
- '' 
- NULL 

但是在後續的更新,這是存儲奇怪的結果數據庫表,例如:

(u'London, United Kingdom',) 
('',) 
(None,) 

此相同的行爲是不是在其他CharFields從Facebook存儲串觀察查詢

我挺困惑的D:,求助!

回答

4

由於拖尾逗號:

friend.location = location_name, 

分配元組(location_name,)(括號內是可選的) 到friend.location

+0

哎呀!非常感謝 :) – DanH