Skip to content

Commit

Permalink
Closes #8470: Expose NetBoxTable in the plugins framework
Browse files Browse the repository at this point in the history
  • Loading branch information
jeremystretch committed Jan 27, 2022
1 parent 59d3f5c commit 3c1ea5d
Show file tree
Hide file tree
Showing 2 changed files with 40 additions and 2 deletions.
37 changes: 37 additions & 0 deletions docs/plugins/development/tables.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# Tables

NetBox employs the [`django-tables2`](https://django-tables2.readthedocs.io/) 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

```python
# 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', ...)
```
5 changes: 3 additions & 2 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -102,9 +102,10 @@ nav:
- Using Plugins: 'plugins/index.md'
- Developing Plugins:
- Getting Started: 'plugins/development/index.md'
- Database Models: 'plugins/development/models.md'
- Models: 'plugins/development/models.md'
- Views: 'plugins/development/views.md'
- Filtersets: 'plugins/development/filtersets.md'
- Tables: 'plugins/development/tables.md'
- Filter Sets: 'plugins/development/filtersets.md'
- REST API: 'plugins/development/rest-api.md'
- Background Tasks: 'plugins/development/background-tasks.md'
- Administration:
Expand Down

0 comments on commit 3c1ea5d

Please sign in to comment.