#javascript #python #django
Вопрос:
Я создал некоторые значения с помощью различных операций в своих представлениях. Поскольку я использую USE_THOUSAND_SEPARATOR = True
в проекте, я выполняю некоторые операции (в противном случае диаграммы не работают), когда я печатаю окончательное значение в терминале, значение отображается правильно.
Но в шаблоне он не принимает полное значение целого числа в javascript, он показывает неполное.
Например,
в терминале просмотра:
print(t1credit) --> 2241825 (Correct)
в шаблоне:
window.alert( ({{ t1credit }}) ) --> 2 (not correct)
Как я могу это решить?
views.py
top_1_country = Customer.objects.values(
'country__country_name'
).annotate(Count('country'),
Sum('credit_limit')).order_by('-country__count')[:1]
t1country = ""
t1count = 0
t1credit = 0
counter = 0
for top in top_1_country:
for q,w in top.items():
if counter == 0:
t1country = w
elif counter == 1:
t1count = w
else:
t1credit = w
counter = 1
sep = '.'
t1credit = str(t1credit)
t1credit = t1credit.split(sep, 1)[0]
t1credit = t1credit.replace(',', '')
t1credit = int(t1credit)
Комментарии:
1. Вы смотрели исходный код в браузере? Нажмите Ctrl U. Что же в
window.alert( ({{ t1credit }}) )
итоге получается?2. он показывает окно. предупреждение( (2,241,825) ) тогда почему оно отображается по-другому?
3. Вы должны сохранить его как строку — без использования
int()
— и вы должны использовать" "
в JavaScript, чтобы сообщить JavaScript, что он должен рассматривать его как строку.window.alert( "{{ t1credit }}" )
Когда вы ставите без""
, вы получаетеwindow.alert( (2,241,825) )
, который обрабатывается как три аргументаwindow.alert( 2, 241, 825 )
, потому,
что используется в JavaScript в качестве разделителя для аргументов в функции — и добавление( )
не может его изменить..4. Я понимаю. Спасибо вам за ваш комментарий. Теперь я это понимаю. Я использовал
x_1 = parseInt((String("{{ t3credit }}").replace(',', '')).replace('.', ''))
, и это работает. Если вы хотите, вы можете отправить свой комментарий в качестве ответа.