如何在我的Django App数据库中存储非unicode字符串?

时间:2011-04-26 16:26:16

标签: django django-models django-views geopy

我正在尝试访问views.py中的一个字段,以便对其执行操作,该操作将计算其与用户输入点的距离(使用geopy)。输入需要是一个普通的字符串,但目前存储在我的数据库中:u'(lat,lng)',这个geopy不喜欢。

如何以正确的格式(例如(lat,lng))将信息存储在我的数据库中。坐标最初以这种格式输入。

提前感谢您,对于没有使用适当的术语而道歉,对此不熟悉并自学成才。

2 个答案:

答案 0 :(得分:0)

使用django-annoying

class MyModel(models.Model):
    ...
    lat_lng = JsonField()

并存储:

MyModel.objects.create(lat_lng={'data': (lat, lng)}, ...)

并使用:

my_model_object.lat_lng['data']

答案 1 :(得分:0)

您是说表中存储的实际值是u'(lat, lng)'吗?在存储之前,您是否将字符串转换为另一种表示形式?这看起来不对。

如有必要,您可以更改表使用的编码。在此处阅读:How to set the encoding for the tables' char columns in django?

在python中使用它们之前,您还可以encode / decode指向特定字符集的字符串:What is the difference between encode/decode?