django template turn array into HTML table

后端 未结 3 1038
悲哀的现实
悲哀的现实 2021-02-02 17:32

I have a list of 16 results, let\'s call it \"results\". I want to arrange them in a 4 x 4 table.

Using the django template, how can I do this? (It doesn\'t seem like cy

相关标签:
3条回答
  • 2021-02-02 17:42

    Suppose you have:
    results=[[1, 2, 3, 4,], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15, 16]]

    The following template can be used to display results in a table:

    <table>
      {% for rowval in results %}    
         <tr>
         {% for val in rowval %}
          <td>{{val}}</td>
         {% endfor %}
        </tr>
      {% endfor %}
    </table> 
    

    It will display:

    1  2  3  4
    5  6  7  8
    9  10 11 12
    13 14 15 16
    
    0 讨论(0)
  • 2021-02-02 17:43

    You can use the cycle tag for this.

    <table>
      {% for r in results %}
        {% cycle '<tr>' '' '' '' %}
          <td>{{r.content}}</td>
        {% cycle '' '' '' '</tr>' %}
      {% endfor %}
    </table>
    

    Would output something like...

    <table>
      <tr>
        <td>result 1</td>
        <td>result 2</td>
        <td>result 3</td>
        <td>result 4</td>
      </tr>
      <tr>
        <td>result 5</td>
        <td>result 6</td>
        <td>result 7</td>
        <td>result 8</td>
      </tr>
      <!-- etc -->
    </table>
    
    0 讨论(0)
  • 2021-02-02 17:49

    You need to build something like this

    <table>
    <tr>
      <th>header1</th>
      <th>header2</th>
      <th>header3</th>
      <th>header4</th>
    </tr>
    {% for r in result %}
    <tr>
      <th> {{ result.name }}</th>
      <th> {{ result.address }}</th>
      <th> {{ result.time }}</th>
      <th> {{ result.date }}</th>
    </tr> 
    {% endfor %}
    </table>
    

    provided that you have an array (actually, a dictionary) this way

    result['name']
    result['address']
    result['time']
    result['date']
    return render_to_response("my_template.html", {'result:result'})
    

    There are a number of do this. This is the most straightforward ways. Look at Django template tag documentation.

    Here is a list of techniques I learned throughout. There are more, but I don't have time to document all of them. http://binarybugs01.appspot.com/entry/template-iteration-techniques

    Sometimes you have to be careful with the context dictionary you are passing to the template. If you are passing this

    result = {'name': 'John', 'time': '12/2/2012'....etc}
    context['result'] = result
    return render_to_response("my_template.html", context}
    

    You are iterating over result.result and the keys are result.result.name


    I also want to remind you that you either have a list, a set, a dictionary, or a tuple.You can import array and use it, however.

    0 讨论(0)
提交回复
热议问题