我试图从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')
答案 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。