将上下文传递给响应并在视图中使用它

时间:2019-03-13 11:53:30

标签: python django

我正在使用Web应用程序,但我想使用C_ki[3][-7]HttpResponse而不是HttpResponseRedirect。但是我不知道要传递上下文作为响应,因为它没有诸如render之类的上下文参数。以及如何在url或view中使用传递的上下文?

这是我的视图

render

如果表单有效,我想在上下文中使用Redirect或ResponseRedirect而不是返回的渲染。基本上render仍然将响应显示为POST方法,而我希望响应为GET。我该怎么办?谢谢。

1 个答案:

答案 0 :(得分:0)

您可以简单地为此创建一个新视图。然后使用redirect将其链接到现有视图。例如:

# view
from django.shortcuts import get_object_or_404


@login_required
def get_task_description(request, pk):
   obj = get_object_or_404(TaskDescriptionModel, pk=pk)
   return render(request, 'todoapp/task_desc.html', context={'description': obj.description})

# url

url(r'^some_path/(?P<pk>[0-9]+)/$', get_task_description, name="get_task_description")

# linking to existing view

 from django.shortcuts import redirect
 ...

     if task_description.is_valid():
        obj = GetTaskDescription.get_task_description(task_description)
        return redirect('get_task_description', pk=obj[0].pk)  # <-- Pointing the new view