繁体   English   中英

Django Model CharField空字符串开始保存为('',)?

[英]Django Model CharField empty string begin saved as ('',)?

我正在尝试从facebook图表查询中保存数据,该查询以以下格式返回位置信息:

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

或者,如果用户未设置该变量,或者将其设置为“null”,则完全缺少位置键。

模型中的位置字段定义为:

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()

对于第一个插入,这似乎很有效,它将数据库中Location列的值存储为:

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

但是在后续更新中,这会在数据库表中存储奇怪的结果,例如:

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

在存储来自Facebook查询的字符串的其他CharField中未观察到相同的行为

我很困惑D :,求助!

由于拖尾逗号:

friend.location = location_name, 

元组 (location_name, ) (括号是可选的)分配给friend.location

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM