Django HttpResponseRedirect 将变量传递给模板并读取它

use*_*324 3 django django-templates django-models django-forms django-views

我想在 Django 中使用类似于 render_to_response 函数的东西,但使用 HttpResponseRedirect。

这是我的views.pyrender_to_response

def somefunction(request):
    return render_to_response('myTemplate.html',{'error': "error"})
Run Code Online (Sandbox Code Playgroud)

mytemplate.html

{% if error %}
    do something
{% endif %}
Run Code Online (Sandbox Code Playgroud)

Vic*_*res 5

您可以传递 GET 变量:

/mytemplate?variable1="variable_1"
Run Code Online (Sandbox Code Playgroud)

您还可以使用消息框架

from django.contrib import messages

def view(request):
  # your code
  messages.error(request, "ERROR")
  HttpResponseRedirect("/mytemplate")
Run Code Online (Sandbox Code Playgroud)

或者也许您可以添加一个会话

def view(request):
    request.session['error'] = "ERROR"
    return HttpResponseRedirect("/mytemplate")


def my_template(request):
        if request.session.has_key('error'):
           error = request.session.get('error')
           del request.session['error']
        return render(request, "myTemplate.html", locals())
Run Code Online (Sandbox Code Playgroud)