如何更改Django模板中的现有变量

时间:2019-04-02 22:53:41

标签: python django

此处是Django的新词,需要一些帮助。我有一个布尔变量empty = True。我成功地通过视图将变量传递给了模板。在模板中,我有一个while循环,其中包含if / else语句。如果满足if语句中的条件,我需要能够将我的变量更改为False。一旦我退出循环,就会有另一个if / else语句来检查为空。

我似乎无法弄清楚如何在模板中更改变量。

我确实尝试过with语句来更改变量,但是它对我来说无法正常工作,因为我必须在循环结束之前结束with语句。 with语句结束后,变量将恢复为原始值

观看次数- '''

def myProjects(request):
    user = request.user
    projects = Project.objects.all() #from db
    empty=True
    return render(request,'users/myProjects.html',locals())

''' 范本- '''

<div class="row" id="main1">
  <div class="col-2"></div>
  <div class="col-9">
    <div>
      <h1>My Projects: </h1>
      {% for x in proj %}
        {% if x.creator.user == me %}
          <div class="media1">
            <img class="account-img" src="{{x.projectPicture.url}}">
            <div>
              <h5><strong>Project Name: {{x.projectName}}</strong></h5>
              <p>Project Type: {{x.projectType}}</p>
              <p>Creator: <a href="/allUsers?name1={{x.creator.user}}"> {{x.creator.user}} </a></p>
              <p class="text-muted small">Created: {{x.dateTime}}</p>
            </div>
          </div>
          {{empty=False}}
        {% else %}
          {{pass}}
        {% endif %}

      {% if empty==True %}
        <p>You do not have any projects</p>
      {% else %}
        {{pass}}
      {% endif %}
      {% endfor %}
    </div>
  </div>
</div>

{% endblock%}

'''

1 个答案:

答案 0 :(得分:0)

在模板中设置变量值违反Django的设计理念。模板系统旨在用于separate logic from presentationavoid being a programming language

要实现您要执行的操作,可以先在视图中过滤项目,然后使用for...empty标签。您的示例将如下所示:

mode.predict