手风琴表Django模板

时间:2015-01-29 13:45:07

标签: javascript jquery python html django

我试图从Django模型中获取一个数据库中的对象填充的表(我有这个),然后当单击一行时,使用JS(或JQuery)来设计一个对象表,是第一个对象的外键。

提前致谢;

表格的Django模板

 {% if objects %}
          <div class="table-responsive">
            <table class="table table-striped">
              <thead>
                <tr>
                  <th>Id</th>
                  <th>Name</th>
                  <th>Time</th>
                  <th>Field 1</th>
                  <th>v</th>
                  <th>Field 2</th>
                    <div>

                    </div>
                </tr>

              </thead>
              <tbody>
                {% for object in objects %}
                    <tr>
                        <th>{{object.object_id}}</th>
                        <th>{{object.name}}</th>
                        <th>{{object.time}}</th>
                        <th>{{object.field1}}</th>
                      <th>v</th>
                      <th>{{object.field2}}</th>
                    </tr>
                {% endfor %}
              </tbody>
            </table>
          </div>
        {% else %}
            <p>No objects!</p>
        {% endif %}

模型

class Object(models.Model):
    object_id = models.IntegerField()
    name = models.CharField(max_length=50)
    object_type = models.CharField(max_length=25)
    time = models.DateTimeField()
    field1 = models.CharField(max_length=50)
    field2 = models.CharField(max_length=50)
    featured = models.BooleanField(default=False)


class Child(models.Model):
    child_id = models.IntegerField()
    name = models.CharField(max_length=50)
    description = models.CharField(max_length=200)
    field11 = models.FloatField()
    field12 = models.ForeignKey('Object')

1 个答案:

答案 0 :(得分:1)

对于jQuery手风琴,请参见此处:http://jqueryui.com/accordion/

这可以让你开始走上正轨。从那里,您只需要事先使用Django的模板系统输出数据。

请注意,您可以通过调用.childmodelname_set来访问父项中的子对象,_set是子模型的小写名称和{% for object in objects %} {{ object.object_id }} {{ object.name }} {{ object.object_type }} ... {% for child in object.child_set.all %} {{ child.child_id }} {{ child.name }} {{ child.description }} ... {% empty %} No children! {% endfor %} {% empty %} No objects! {% endfor %} 。您可以遍历此集以在模板中输出子对象:

<div>

在这种情况下,您将使用手风琴构建模板,以便为该手风琴选项卡的内容生成内部for循环中的所有子数据。

使用来自jQueryui的上述链接的Accordion,您必须使用<h3>和{{1}}标记重建数据输出:您可以在其中构建单独的表,但它赢得了&#39 ;是完美的。

或者,因为看起来你正在使用Bootstrap,所以你可以在网格系统中编写div。