2012-01-22 7 views
2

私は特にdjangoのnoobです。私がしようとしているのは、簡単な問題のバリエーションです。1ページのいくつかのインスタンスから合計値を得るには

mysite/numberに行ってください。ウェブページのフォームから番号を取得します。 Reload mysite/numberと同じフォームから2番目の値を取得します。それをn回行う。そしてnの合計を得る。

つまり、total + = numberの後の次の行は何ですか? https://docs.djangoproject.com/en/dev/topics/http/shortcuts/#django.shortcuts.redirect

あなたは数の値を読み、再度同じページにユーザーをリダイレクトすることができます。

答えて

1

あなたは

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

ドキュメントを使用することができます。

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

は、あなたが何らかの形で状態を保存する必要があります。

次のようなものを使用することができます。これはdjangoセッションフレームワークを介して行うことができます。

データをrequest.session['number'] = 0に保存し、ユーザーのブラウザセッションで1ページビューを超えて永続的な数値を継続的に追加します。

あなたは追加の対総いつ表示するかを決定するために特定の名前を持つ新しい送信ボタン追加することができます(または新しい「合計」ビューへのリンクを - それはあなた次第です)

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(...) 
関連する問題