我想为民意调查制作进度条。我使用 django 1.4.8 来实现。进度条应该显示已经投票的人的比例。还有一个帮助函数返回投票用户的总和。
首先,我编辑模板和 css 以显示栏。之后,我尝试将 jquery 用于实际行为。但我迷路了。我在互联网上搜索,但我可以清楚地理解。我不确定哪种方法是正确的。我不想使用任何其他外部库。
所以,问题是如何调用帮助函数以及我将在哪里使用该值在模板中显示进度条上的正确百分比?
我想为民意调查制作进度条。我使用 django 1.4.8 来实现。进度条应该显示已经投票的人的比例。还有一个帮助函数返回投票用户的总和。
首先,我编辑模板和 css 以显示栏。之后,我尝试将 jquery 用于实际行为。但我迷路了。我在互联网上搜索,但我可以清楚地理解。我不确定哪种方法是正确的。我不想使用任何其他外部库。
所以,问题是如何调用帮助函数以及我将在哪里使用该值在模板中显示进度条上的正确百分比?
您需要考虑 Web 浏览器和服务器 (Django) 的通信方式。
浏览器向服务器上的 url 发出“get”请求。在 Django 中,您有一个urls.py文件,该文件确定哪个视图将处理对该 url 的请求。例如,将有一个视图呈现包含投票表单的 HTML 代码的模板。
当用户提交投票时,浏览器发出“发布”请求,将投票的表单数据发送到服务器 - 发送到处理将投票保存到数据库的特定 Django 视图。通常在 Django 中,我们会为表单的 get 和 post 使用相同的视图函数 - 有关更多详细信息,请参阅此答案:https ://stackoverflow.com/a/21114637/202168
目前尚不清楚您是要最初显示进度条,还是仅在他们提交投票后才显示进度条。无论哪种方式,您只需要计算 Django 视图中用户百分比和总和的相关值,并将这些值传递到模板中,模板会将 HTML 发送回浏览器。
如果您使用的是HTML5 进度条,您甚至不需要 jQuery。除非您希望用户在其他用户提交投票时看到进度条发生变化(要复杂得多),否则您也不需要任何“ajax”的东西。
我建议您首先从 Django 教程开始:
https ://docs.djangoproject.com/en/dev/intro/tutorial01/
因此,准确地说,helper.py 从 jingo 导入注册。这意味着您立即将函数调用到模板中。此外,我使用而不是出于我的目的。
助手.py
from jingo import register
@register.filter
def get_value():
return value
进入模板
<meter min="0" value="{{ <app_name>|get_value }} max="1"></meter>