1

我想进行多个查询并将结果显示在一个表中,我正在使用 django-tables2。当然,结果是相关的,因此它们需要位于同一行。

示例:2 个模型:设备和用户,我想显示使用此设备的设备和人员,或者外键在人员模型中

class Device(models.Model):
    iddevice = models.AutoField(primary_key=True) 
    typedevice = models.ForeignKey('Devicetype')

class Person(models.Model):
     idperson = models.AutoField(primary_key=True) 
     idpersondevice = models.ForeignKey('Device')
4

1 回答 1

3

好的我明白了。您需要编写一个自定义 Table 类。

制作一个文件tables.py,并确保您导入您的模型并包含该行import django_tables2 as tables

class MyTable(tables.Table):
    idperson=tables.Column(accessor='idperson')
    iddevice=tables.Column(accessor='idpersondevice.iddevice')
    typedevice=tables.Column(accessor='idpersondevice.typedevice')

    class Meta:
        model=Person

那么在你看来:

table=MyTable(Person.objects.all()) #or filter it somehow
RequestConfig(request).configure(table)

然后将该表传递给您的模板,您可以在其中渲染它。

您需要根据自己MyTable的喜好自定义您的表 ( ),我刚刚给了您主干。如果您需要更多信息,文档实际上相当不错。http://django-tables2.readthedocs.org/en/latest/

于 2013-07-30T15:14:05.203 回答