Я знаю, что это не вопрос, похожий на stackoverflow, но, пожалуйста, не запрещайте мне это. Мне действительно нужна рекомендация по передовой практике.Django HTML-шаблоны - хранение объекта JSON где-то на странице
У меня есть представление Django, отображающее таблицу в HTML-шаблоне. Моя цель состоит в том, чтобы проверять входные данные пользователя на стороне клиента, а часть проверки связана с сложным анализом данных, который учитывает данные, которые не отображаются в таблице. Я не могу использовать определяемые пользователем атрибуты, потому что у меня есть фильтр на таблице, скрывающий строки в зависимости от условий фильтра, и если фильтр не пуст, моя проверка данных будет неправильной на основе анализа всех строк таблицы.
ОБНОВЛЕНИЕ: По этой причине я передаю объект JSON из представления Django в HTML-шаблон. Но проблема в том, что я не могу передать его внешнему JS-файлу.
Например, допустим, что у меня есть таблица для редактирования, как указано ниже.
<tbody json_failed_attempt = {{json_object}}>
{% for vendor in vendors_table %}
<tr>
<td class = 'click_this_row'>
{{vendor.legal_entity.name}}
</td>
</tr>
{% endfor %}
</tbody>
JQuery
$('td.click_this_row').on('change', function()
{
// HOW SHOULD I PARSE THROUGH THE JSON ???
// This alert outputs this:
// "[{"model":"
alert ($('#vendorsTable tbody').attr('legal_entities_json'))
}
Джанго вид:
def vendors(request):
vendors_table = Vendors.objects.all()
legal_entities_queryset = LegalEntities.objects.all()
legal_entities_json = serializers.serialize('json', legal_entities_queryset, fields=('inn', 'kpp'))
return render_to_response('vendors/vendors_list.html',
{'vendors_table':vendors_table,
'legal_entities_json' : legal_entities_json},
context_instance=RequestContext(request))
Возможно ли это метод? И если да, почему я не могу использовать parseJSON здесь? И как должен выглядеть цикл?
@EdgarNavasardyan Вы задаете переменную 'data' перед включением внешнего скрипта JS? Вы также можете попытаться установить 'data' как атрибут объекта window:' window.my_data = {{json_object}}; ' – dizballanze
спасибо, оба метода работают сейчас. Единственный вопрос, который беспокоит меня, - это тот факт, что пользователь может видеть данные, если они просматривают источник страницы. Разве это не проблема сатира? –
@EdgarNavasardyan Я не думаю, что это проблема безопасности. Django имеет защиту по умолчанию от подобных проблем. https://docs.djangoproject.com/es/1.9/topics/security/#cross-site-scripting-xss-protection – dizballanze