Вызовите вспомогательную функцию и создайте индикатор выполнения на django
Я хочу сделать индикатор для опроса. Я использую django 1.4.8 для реализации. Индикатор выполнения должен отображать повторный процент людей, которые уже проголосовали. Существует также вспомогательная функция, которая возвращает сумму проголосовавших пользователей.
Сначала я редактирую шаблон и CSS для отображения панели. После этого я пытаюсь использовать JQuery для фактического поведения. Но я потерялся. Я искал в Интернете, но я мог сделать понимание в ясной форме. Я не уверен, что это правильный способ сделать это. Я не хочу использовать любую другую внешнюю библиотеку.
Итак, вопрос в том, как вызвать функцию справки и где я буду использовать значение, чтобы отобразить правильный процент на индикаторе выполнения в шаблоне?
2 ответа
Вам нужно подумать о том, как общаются веб-браузер и сервер (Django).
Браузер отправляет запрос get на URL-адрес сервера. В Django у вас есть файл urls.py, который определяет, какое представление будет обрабатывать запросы к этому URL. Например, будет представление, которое отображает шаблон, содержащий HTML-код для формы опроса.
Когда пользователь отправляет опрос, браузер отправляет запрос "отправить", отправляя данные формы для опроса на сервер, в конкретное представление Django, которое обрабатывает сохранение голосования в базе данных. Обычно в Django мы используем одну и ту же функцию просмотра как для получения, так и для публикации формы - см. Этот ответ для получения дополнительной информации: /questions/8890770/gde-obrabatyivayutsya-dannyie-formyi-dzhango/8890774#8890774
Непонятно, хотите ли вы сначала показать индикатор выполнения или только после того, как они отправили свой голос. В любом случае вам просто нужно рассчитать соответствующие значения для процента и суммы пользователей в представлении Django и передать эти значения в шаблон, который отображает HTML, отправленный обратно в браузер.
Если вы используете индикатор прогресса HTML5, вам даже не нужен jQuery. Если вы не хотите, чтобы пользователь видел, как меняется индикатор выполнения, когда другие пользователи отправляют свои голоса (что гораздо сложнее), вам также не нужны какие-либо "аяксы".
Я предлагаю сначала начать с учебника по Django:
https://docs.djangoproject.com/en/dev/intro/tutorial01/
Таким образом, чтобы быть точным, helper.py импортирует регистр из jingo. Это означает, что вы вызываете функцию мгновенно в шаблон. Кроме того, я использовал вместо того, чтобы для моей цели.
helper.py
from jingo import register
@register.filter
def get_value():
return value
в шаблон
<meter min="0" value="{{ <app_name>|get_value }} max="1"></meter>