Как я могу сохранить не-Unicode строку в базе данных моего приложения Django?
Я пытаюсь получить доступ к полю в views.py, чтобы выполнить над ним операцию, которая вычислит его расстояние от точки, введенной пользователем (с использованием геопии). Входные данные должны быть простой строкой, но в настоящее время они хранятся в моей базе данных как: u'(lat, lng)', что не нравится geopy.
Как я могу хранить информацию в моем БД в правильном формате (например, (лат, lng)). Координаты изначально вводятся в этом формате.
Заранее спасибо, извиняюсь за то, что не использовал правильную терминологию, новичок в этом и самоучка
2 ответа
Используйте Django-раздражает
class MyModel(models.Model):
...
lat_lng = JsonField()
И хранить:
MyModel.objects.create(lat_lng={'data': (lat, lng)}, ...)
И использовать:
my_model_object.lat_lng['data']
Вы говорите, что фактическое значение, хранящееся в таблице, u'(lat, lng)'
? Вы конвертируете свою строку в другое представление перед ее сохранением? Это не выглядит правильно.
При необходимости вы можете изменить кодировку таблицы. Прочитайте об этом здесь: Как установить кодировку для столбцов char в django?
Также вы можете encode
/decode
Строки для определенного набора символов перед использованием их в Python: В чем разница между кодированием / декодированием?