Django smart_str по запросу - PullRequest
       0

Django smart_str по запросу

0 голосов
/ 02 февраля 2012

Мне нужно использовать smart_str в результатах запроса на мой взгляд, чтобы позаботиться о латинских символах. Как я могу конвертировать каждый элемент в моем наборе запросов?

Я пробовал:

...
mylist = []
myquery_set = Locality.objects.all()
for item in myquery_set:
    mylist.append(smart_str(item))
...

Но я получаю ошибку:

coercing to Unicode: need string or buffer, <object> found

Каков наилучший способ сделать это? Или я могу позаботиться об этом в шаблоне, пока я повторяю результаты?

РЕДАКТИРОВАТЬ: если я вывести значения в шаблон, то все хорошо. Однако я хочу вывести ответ в виде файла .xls, используя код:

...
filename = "locality.xls"
response['Content-Disposition'] = 'attachment; filename='+filename
response['Content-Type'] = 'application/vnd.ms-excel; charset=utf-8'
return response 

Вид работает нормально (дает мне файл и т. Д.), Но латинские символы отображаются неправильно.

1 Ответ

0 голосов
/ 13 февраля 2012

В вашем коде вы выполняете smart_str для объекта Model вместо строки (так что в основном вы пытаетесь преобразовать объект в строку). Решением является smart_str на поле:

mylist.append(smart_str(item.fieldname))
...