如何更新Django模板中的渲染变量?

时间:2020-08-18 15:43:14

标签: python django django-templates jinja2 backend

我正在尝试渲染一个变量,该变量将在代码中多次更新,但是它只是将最后一个变量呈现给模板,例如在我的模板上:

views.py:

def test(request):
    message = 'first massage'
    #do something
    message = 'second massage'

    return render(request,'test.html',{'message':message})

test.html

<h1> {{message}} </h1>

它仅显示second message,但我想先显示first message,然后再更改显示second message。有帮助吗?

2 个答案:

答案 0 :(得分:1)

  1. 如果要动态更改“ message”变量(例如“ message”变量与模型有关),

    a。)在views.py中使用python更新“ message”变量, 创建一个返回JsonResponse的api,然后您可以通过以下方式获取此数据 JavaScript和更新(document.getElementById(“ someID”)。innerHTML =“ $ {message}`)

    在Views.py

    def testapi(request):
       # do something
       return JsonResponse({"message":"VALUE_OF_MESSAGE"},status=201)
    

    在javascript文件中

    fetch('/testapi')
    .then(response => response.json())
    .then(resp => {
       console.log(resp); //output=> {"message":"VALUE_OF_MESSAGE"}
       var message=resp.message;
      document.getElementById('someId').innerHTML= ``${message}`; 
      });
    

    您可以随时随地执行获取请求。

2。)如果您必须对页面中的元素进行某些操作以更新您的消息 变量,建议您直接使用JavaScript。

答案 1 :(得分:0)

您好,我认为您可以通过以下操作来解决....您需要创建一个循环..它看起来像这样。.

在您的html代码之前,输入{%表示消息%}中的消息 然后在您的html代码中输入{%endfor%}

希望它能起作用。...