У меня есть код, который я не могу опустить. Чем больше я смотрю на него, тем больше я смущаюсь.django/python collections issue
Существует два значения даты и код языка, который передается в функцию js. Тогда есть коллекция django (я думаю!), Которая взаимодействует с тегом языка django, чтобы назначить правильные значения.
Я думал, что правильно настроил это, но код не работает, и я не могу понять причину этого, так как мой опыт недостаточно хорош, чтобы увидеть, где я ошибся.
Ошибка возникает, когда я пытаюсь вызвать names.month (как показано в последней строке), поэтому я думаю, что я сделал ошибку в коде name_map или в назначении переменных lc и LANGUAGE_CODES.
Переданные значения являются:
date1: 10/2000;
дата2: 12/2004;
dynamic_language_code: de;
Любые предложения были бы замечательными.
function dateCalculation(date1, date2, dynamic_language_code) {
//this function will accept two dates (format: mm/yyyy) and calculate the difference between the 2 dates and display the difference as x months or x years, x months.
var a = date1;
var b = date2;
var lc = dynamic_language_code;
var LANGUAGE_CODES = 'ar, zh-CN, zh-TW, en-GB, en, fr, fr-CA, de, it, pl, pt, pt-BR, ru, es-419, es';
var name_map = {
{% for lc in LANGUAGE_CODES %}
{{ lc }}: {
month: "{% language lc %}{% trans 'month' %}{% endlanguage %}",
months: "{% language lc %}{% trans 'months' %}{% endlanguage %}",
year: "{% language lc %}{% trans 'year' %}{% endlanguage %}",
years: "{% language lc %}{% trans 'years' %}{% endlanguage %}"
} {% if not forloop.last %},{% endif %}
{% endfor %}
}
names = name_map[lc];
if(names === undefined) { names = name_map['en']; }
....
time_span = total_months + " " + names.month;
....
Как выглядит код при визуализации (т.е. в View Source)? Кажется, у вас есть некоторая путаница между серверными и клиентскими переменными здесь: вы определяете JS-переменную 'LANGUAGE_CODES', но также пытаетесь выполнить итерацию через тег, называемый LANGUAGE_CODES', в теге шаблона. Это то же самое, или вы также передаете LANGUAGE_CODES в контекст шаблона? –
Это действительно шаблон, используемый django для генерации (в данном случае) js-кода, '{% ...%}' и '{{...}}' являются выражениями для этого языка шаблонов. Какая ошибка? И можете ли вы дать нам код, который отображает шаблон? – Dettorer
Как @DanielRoseman упоминает, что вы путаете код на стороне сервера с клиентским кодом. –