【问题标题】:How to change the value of a django variable如何更改 django 变量的值
【发布时间】:2015-11-09 21:22:59
【问题描述】:

所以我的源代码中有以下数组:

values: [
        {
              "Question" :  ["question two"]   ,    "Answer" :  ["answer to question 2"]} 
         ,          {
              "Question" :  ["question one"]   ,    "Answer" :  ["answer to question one"] } 
         ,          {
              "Question" :  ["question one"]   ,    "Answer" :  ["another answer to question one"]} 

我需要将信息呈现为列表视图,使其看起来像这样:
问题二
回答问题 2
问题一
回答问题一
第一个问题的另一个答案

我正在使用 Django 和 HTML 来呈现视图,这是我目前的代码

      <div>
         {% with "" as name %}  
         {% for value in view.data.values %}
         <li> 
            {% ifnotequal value.Question name %}
                <div>{{value.Question|default:''}}  {{value.question_creation_date}}</div>
             {% endifnotequal %}
                <div>{{value.user_creation_date}} {{value.Answer}}</div>
         </li>
          <!-- set name equal to value.Question -->
          {% endfor%}
          {% endwith %}
         </div>

【问题讨论】:

    标签: python html django for-loop django-templates


    【解决方案1】:

    您可以通过 for 循环实现此目的:

    {% with "product" as name %}
        {% for i in products.count %}
            <div>{{name}}{{ forloop.counter }}</div> 
        {% endfor %}
    {% endwith %}
    

    输出:

    <div>product1</div>
    
    <div>product2</div>
    

    等等


    如果您希望计数器以 0 而不是 1 开头,您可以使用 forloop.counter0

    【讨论】:

    • 这不仅仅是实现它的一种方式,而是应该这样做的方式。变量处理是进入视图的业务逻辑,而不是模板,因此django的模板语言不允许复杂的变量处理。
    • 好的,但是我怎样才能将变量名称更改为其他名称,而不仅仅是进行连接
    • 您对其他内容是什么意思? 您可以打印产品的属性,例如:{% for product in Product.objects.all %} {{ product.name }} {% endfor %}。就像@ChristopherSchäpers 所说,分配变量等属于视图。
    • sry 我不清楚,我只想知道如何在声明变量后更改它的值,例如,如果值设置为“产品”,我想将其更改为“键盘”
    • 不,那是不可能的。你到底想达到什么目的?也许有一个解决方法。
    猜你喜欢
    • 2014-03-19
    • 1970-01-01
    • 1970-01-01
    • 2022-12-05
    • 2019-03-05
    • 2021-03-14
    • 2021-01-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多