1
0
mirror of https://github.com/netbox-community/netbox.git synced 2024-05-10 07:54:54 +00:00
Files
netbox-community-netbox/docs/plugins/development/tables.md

1.2 KiB

Tables

NetBox employs the django-tables2 library for rendering dynamic object tables. These tables display lists of objects, and can be sorted and filtered by various parameters.

NetBoxTable

To provide additional functionality beyond what is supported by the stock Table class in django-tables2, NetBox provides the NetBoxTable class. This custom table class includes support for:

  • User-configurable column display and ordering
  • Custom field & custom link columns
  • Automatic prefetching of related objects

It also includes several default columns:

  • pk - A checkbox for selecting the object associated with each table row
  • id - The object's numeric database ID, as a hyperlink to the object's view
  • actions - A dropdown menu presenting object-specific actions available to the user.

Example

# tables.py
import django_tables2 as tables
from netbox.tables import NetBoxTable
from .models import MyModel

class MyModelTable(NetBoxTable):
    name = tables.Column(
        linkify=True
    )
    ...

    class Meta(NetBoxTable.Meta):
        model = MyModel
        fields = ('pk', 'id', 'name', ...)
        default_columns = ('pk', 'name', ...)