Pular para conteúdo

Tabelas

O NetBox utiliza a biblioteca django-tables2 para renderizar tabelas de objetos dinâmicas. Essas tabelas mostram a lista de objetos e podem ser ordenadas e filtradas com diversos parâmetros.

NetBoxTable

Para fornecer funcionalidades adicionais além do grupo de funções suportads pela classe Table dentro de django-tables2. O NetBox fornece a classe NetBoxTable. Essa classe de tabela customizada inclui o suporte de:

  • Configuração do usuário para exibição de coluna e ordenamento
  • Colunas de campos customizados & links customizados
  • A pré-obtenção automática de objetos relacionados

Isso inclui diversas colunas padrões diversas:

  • pk - Um checkbox para selecionar o objeto associado com cada linha de cada tabela (onde aplicável)
  • id - O ID número do objeto do banco de dados, como um hyperlink (link) da visualização do objeto (escondida por padrão)
  • actions - Um menu de dropdown apresentando ações específicas do objeto disponíveis ao usuário

Exemplo

# 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', ...)

Configuração da Tabela

A classe NetBoxTabel oferece funções dinâmicas de configuração para permitir que os usuários mudem a exibição de suas colunas ao ordenas as preferências. Para configurar uma tabela para requisições específicas, simplesmente chame o método configure() e passe o objeto corrente HTTPRequest. Por exemplo:

table = MyModelTable(data=MyModel.objects.all())
table.configure(request)

Automaticamente será aplicadas preferências especificadas pelo usuário para a tabela. (Se estiver utilizando uma visualização genérica (generic view) fornecida pelo NetBox, configuração da tabela é automaticamente provisionada.)

Colunas

As classes da coluna listadas abaixo são suportadas para serem utilizadas pelos plugins. Essas classes podem ser importadas de netbox.tables.columns.

::: netbox.tables.BooleanColumn options: members: false

::: netbox.tables.ChoiceFieldColumn options: members: false

::: netbox.tables.ColorColumn options: members: false

::: netbox.tables.ColoredLabelColumn options: members: false

::: netbox.tables.ContentTypeColumn options: members: false

::: netbox.tables.ContentTypesColumn options: members: false

::: netbox.tables.MarkdownColumn options: members: false

::: netbox.tables.TagColumn options: members: false

::: netbox.tables.TemplateColumn options: members: - init