Django: View возвращает JSON content_dictionary, как декодировать в Javascript - PullRequest
2 голосов
/ 10 января 2010

Позвольте мне объяснить, что я пытаюсь сделать, и если бы кто-то мог указать правильный способ сделать это и решение, где я застрял, это было бы здорово!

Кто-то печатает URL

www.ABC.com/showItem/Blackberry

Я ищу «Blackberry» в своей базе данных и нахожу данные для него, теперь я хочу показать его детали на одной странице.

Следовательно, в представлении я делаю это

return_data=simplejson.dumps(response_dict)

return render_to_response('workmodule/show_item_details.html', {"item_complete_data": return_data}, context_instance=RequestContext(request))

В myHTML я делаю это

data_from_django = {{ farm_complete_data }}

Question 1: Это правильный метод для доступа к данным JSON в HTML? Почему-то я думаю, что должен быть лучший / более чистый способ.

Question 2: Еще одна проблема - все кавычки заменены на """, поэтому javscript разрывается. Если выше - правильный путь, как правильно «декодировать» строку.

Note : Ранее я использовал функцию .ajax в jquery, и она прекрасно работает, если вы уже находитесь на странице и звоните в бэкэнд. Представления в этом случае вернули данные так же, как и выше, и данные не были экранированы. Или так казалось к тому времени, когда мой успех ajax: или ошибка: функции обработали его.

Спасибо, что нашли время посмотреть на это.

Ответы [ 2 ]

8 голосов
/ 10 января 2010

Вопрос 1: на самом деле это правильно.

Вопрос 2: Не декодируйте его, направьте в безопасное место: {{farm_complete_data | safe}}, чтобы он не пытался скрыть его с помощью html.

0 голосов
/ 10 января 2010

Зачем вообще передавать его в шаблон? Вы просто хотите JSON, поэтому в представлении сделайте это:

return simplejson.dumps(response_dict)

Тогда не нужно беспокоиться о кодировании / цитировании.

...