6

ビューが2つある場合は、最初にmodelformを使用し、ユーザーからの入力情報(生年月日、名前、電話番号など)を取得し、2番目のメソッドはこの情報を使用して、表。Djangoはオブジェクトを処理のためにビューから次のオブジェクトに渡します

あなたは2番目のビューのテンプレート

でそれを使用することができますので、どのようにして次のビューに最初のビューで作成したオブジェクトを渡す私はあなたが

答えて

9

一つのアプローチを共有することができます任意の助けに感謝したいとです最初のビューでオブジェクトをセッションに入れます。次に、2番目のビューのrequest.sessionからオブジェクトを取得できます。

def first_view(request): 
    my_thing = {'foo' : 'bar'} 
    request.session['my_thing'] = my_thing 
    return render(request, 'some_template.html') 

def second_view(request): 
    my_thing = request.session.get('my_thing', None) 
    return render(request, 'some_other_template.html', {'my_thing' : my_thing}) 
+0

あなたはその意味を明確にすることができますか?おそらく、関連するdjango文書へのリンク?私はまだこのことを学んでいます あなたの返信をありがとう! – JohnnyCash

+0

私は私の答えにあなたのための例を追加しました。 – Brandon

+0

これは私のために働くかもしれないように見えます! 最後にもう1つ質問があります(私と一緒に私はごめんなさい)..テンプレートから保存されたフォームをどう呼び出すのですか?最初のビューのテンプレートで呼び出されたもので呼び出すことはできますか? もう一度おねがいします! – JohnnyCash

2

新しく作成されたオブジェクトのID/wのテーブルビューに向けることHttpResponseRedirectを使用してください。ここに簡略化した例があります:

def first(request): 
    if request.method == 'POST': 
      form = MyModelForm(request.POST, request.FILES) 
      if form.is_valid(): 
       my_model = form.save() 

       return HttpResponseRedirect('/second/%s/' % (my_model.pk)) # should actually use reverse here. 
     # normal get stuff here 

def second(request, my_model_pk): 
    my_model = MyModel.objects.get(pk=my_model_pk) 

    # return your template w/my model in the context and render 
+0

どのようにしてオブジェクトを呼び出すのですか?あなたは簡単な例を提供してもらえますか?ありがとう! – JohnnyCash

+0

@JohnnyCash:そこに行きます。 – sdolan

関連する問題