如何从一个页面的多个实例中总计值

时间:2012-01-22 20:02:30

标签: python django

我是django特别的菜鸟。我想要做的是对一个简单问题的变化:

转到mysite / number。从网页表单中获取一个数字。重新加载mysite / number并从同一表单中获取第二个值。这样做了n次。得到n的总数。

换句话说,总数+ =数后我的下一行是什么?

2 个答案:

答案 0 :(得分:2)

你需要以某种方式存储状态。这可以通过django会话框架完成。

将数据存储在request.session['number'] = 0中,并不断添加到用户浏览器会话和单页视图之外的数字。

您可以添加一个具有特定名称的新提交按钮,以确定何时显示总数与添加量(或指向新“总体”视图的链接 - 由您决定)

def myview(request):
    if not 'number' in request.session:
        request.session['number'] = 0

    if request.POST.get('show_total'):
        return http.HttpResponse(request.session['number'])

    # form here...
    if form.is_valid():
        request.session['number'] += form.cleaned_data['number']

    return render(...)

答案 1 :(得分:1)

您可以使用

redirect(to[, permanent=False], *args, **kwargs) 

Doc:https://docs.djangoproject.com/en/dev/topics/http/shortcuts/#django.shortcuts.redirect

您可以阅读数字的值,然后再次将用户重定向到同一页面。

您可以使用以下内容:

def someview(request):
    #Get your number
    #Add to total using total+=number
    return redirect('/your/desired/url')