Как я могу сохранить не-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: В чем разница между кодированием / декодированием?

Другие вопросы по тегам