Django将对象从视图传递到下一个视图进行处理

Django将对象从视图传递到下一个视图进行处理,django,django-models,django-forms,django-templates,django-views,Django,Django Models,Django Forms,Django Templates,Django Views,如果您有两个视图,第一个视图使用modelform从用户处获取输入的信息(出生日期、姓名、电话号码等),第二个视图使用此信息创建表 如何将第一个视图中创建的对象传递到下一个视图,以便在第二个视图的模板中使用它 如果您能提供任何帮助,我将不胜感激。一种方法是将对象放入第一个视图中的会话中,然后您可以从第二个视图中的request.session中检索该会话 def first_view(request): my_thing = {'foo' : 'bar'} request.ses

如果您有两个视图,第一个视图使用modelform从用户处获取输入的信息(出生日期、姓名、电话号码等),第二个视图使用此信息创建表

如何将第一个视图中创建的对象传递到下一个视图,以便在第二个视图的模板中使用它


如果您能提供任何帮助,我将不胜感激。

一种方法是将对象放入第一个视图中的会话中,然后您可以从第二个视图中的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})

使用
HttpResponseRedirect
指向带有新创建对象id的表视图。以下是一个简化示例:

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

你能澄清一下你的意思吗?也许是相关django文档的链接?我还在学习这些东西,谢谢你的回复!我为你的答案添加了一个例子。这看起来可能对我有用!最后一个问题,(对不起,请直说)。。如何从模板调用已保存的表单?我是否按照第一个视图在模板中的名称来调用它们?再次感谢!p、 s,示例中的my_对象=my problem中的form.save()。。因为我正在保存输入的东西..我想要传递的变量是什么,不是JSON可序列化的,比如,和实例?那么你怎么调用这个对象呢?你能举个简单的例子吗?谢谢