mirror of
https://github.com/netbox-community/netbox.git
synced 2025-12-12 03:19:36 -06:00
Document remaining primary/organizational/nestedgroup resources for the plugins API (except GraphQL types & filters)
This commit is contained in:
parent
6d777a20ad
commit
1715ce6cdd
@ -32,7 +32,7 @@ class MyFilterSet(NetBoxModelFilterSet):
|
|||||||
fields = ('some', 'other', 'fields')
|
fields = ('some', 'other', 'fields')
|
||||||
```
|
```
|
||||||
|
|
||||||
In addition to the base NetBoxModelFilterSet class, the following filterset classes are also available for applicable models.
|
In addition to the base NetBoxModelFilterSet class, the following filterset classes are also available for subclasses of standard base models.
|
||||||
|
|
||||||
| Model Class | FilterSet Class |
|
| Model Class | FilterSet Class |
|
||||||
|-----------------------|--------------------------------------------------|
|
|-----------------------|--------------------------------------------------|
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
## Form Classes
|
## Form Classes
|
||||||
|
|
||||||
NetBox provides several base form classes for use by plugins.
|
NetBox provides several base form classes for use by plugins. Additional form classes are also available for other standard base model classes (PrimaryModel, OrganizationalModel, and NestedGroupModel).
|
||||||
|
|
||||||
| Form Class | Purpose |
|
| Form Class | Purpose |
|
||||||
|----------------------------|--------------------------------------|
|
|----------------------------|--------------------------------------|
|
||||||
@ -19,7 +19,17 @@ This is the base form for creating and editing NetBox models. It extends Django'
|
|||||||
|-------------|---------------------------------------------------------------------------------------|
|
|-------------|---------------------------------------------------------------------------------------|
|
||||||
| `fieldsets` | A tuple of `FieldSet` instances which control how form fields are rendered (optional) |
|
| `fieldsets` | A tuple of `FieldSet` instances which control how form fields are rendered (optional) |
|
||||||
|
|
||||||
**Example**
|
#### Subclasses
|
||||||
|
|
||||||
|
The corresponding model-specific subclasses of `NetBoxModelForm` are documented below.
|
||||||
|
|
||||||
|
| Model Class | Form Class |
|
||||||
|
|---------------------|-------------------------|
|
||||||
|
| PrimaryModel | PrimaryModelForm |
|
||||||
|
| OrganizationalModel | OrganizationalModelForm |
|
||||||
|
| NestedGroupModel | NestedGroupModelForm |
|
||||||
|
|
||||||
|
#### Example
|
||||||
|
|
||||||
```python
|
```python
|
||||||
from django.utils.translation import gettext_lazy as _
|
from django.utils.translation import gettext_lazy as _
|
||||||
@ -49,9 +59,19 @@ class MyModelForm(NetBoxModelForm):
|
|||||||
|
|
||||||
### `NetBoxModelImportForm`
|
### `NetBoxModelImportForm`
|
||||||
|
|
||||||
This form facilitates the bulk import of new objects from CSV, JSON, or YAML data. As with model forms, you'll need to declare a `Meta` subclass specifying the associated `model` and `fields`. NetBox also provides several form fields suitable for import various types of CSV data, listed below.
|
This form facilitates the bulk import of new objects from CSV, JSON, or YAML data. As with model forms, you'll need to declare a `Meta` subclass specifying the associated `model` and `fields`. NetBox also provides several form fields suitable for importing various types of CSV data, listed [below](#csv-import-fields).
|
||||||
|
|
||||||
**Example**
|
#### Subclasses
|
||||||
|
|
||||||
|
The corresponding model-specific subclasses of `NetBoxModelImportForm` are documented below.
|
||||||
|
|
||||||
|
| Model Class | Form Class |
|
||||||
|
|---------------------|-------------------------------|
|
||||||
|
| PrimaryModel | PrimaryModelImportForm |
|
||||||
|
| OrganizationalModel | OrganizationalModelImportForm |
|
||||||
|
| NestedGroupModel | NestedGroupModelImportForm |
|
||||||
|
|
||||||
|
#### Example
|
||||||
|
|
||||||
```python
|
```python
|
||||||
from django.utils.translation import gettext_lazy as _
|
from django.utils.translation import gettext_lazy as _
|
||||||
@ -83,7 +103,17 @@ This form facilitates editing multiple objects in bulk. Unlike a model form, thi
|
|||||||
| `fieldsets` | A tuple of `FieldSet` instances which control how form fields are rendered (optional) |
|
| `fieldsets` | A tuple of `FieldSet` instances which control how form fields are rendered (optional) |
|
||||||
| `nullable_fields` | A tuple of fields which can be nullified (set to empty) using the bulk edit form (optional) |
|
| `nullable_fields` | A tuple of fields which can be nullified (set to empty) using the bulk edit form (optional) |
|
||||||
|
|
||||||
**Example**
|
#### Subclasses
|
||||||
|
|
||||||
|
The corresponding model-specific subclasses of `NetBoxModelBulkEditForm` are documented below.
|
||||||
|
|
||||||
|
| Model Class | Form Class |
|
||||||
|
|---------------------|---------------------------------|
|
||||||
|
| PrimaryModel | PrimaryModelBulkEditForm |
|
||||||
|
| OrganizationalModel | OrganizationalModelBulkEditForm |
|
||||||
|
| NestedGroupModel | NestedGroupModelBulkEditForm |
|
||||||
|
|
||||||
|
#### Example
|
||||||
|
|
||||||
```python
|
```python
|
||||||
from django import forms
|
from django import forms
|
||||||
@ -125,7 +155,17 @@ This form class is used to render a form expressly for filtering a list of objec
|
|||||||
| `model` | The model of object being edited |
|
| `model` | The model of object being edited |
|
||||||
| `fieldsets` | A tuple of `FieldSet` instances which control how form fields are rendered (optional) |
|
| `fieldsets` | A tuple of `FieldSet` instances which control how form fields are rendered (optional) |
|
||||||
|
|
||||||
**Example**
|
#### Subclasses
|
||||||
|
|
||||||
|
The corresponding model-specific subclasses of `NetBoxModelFilterSetForm` are documented below.
|
||||||
|
|
||||||
|
| Model Class | Form Class |
|
||||||
|
|---------------------|----------------------------------|
|
||||||
|
| PrimaryModel | PrimaryModelFilterSetForm |
|
||||||
|
| OrganizationalModel | OrganizationalModelFilterSetForm |
|
||||||
|
| NestedGroupModel | NestedGroupModelFilterSetForm |
|
||||||
|
|
||||||
|
#### Example
|
||||||
|
|
||||||
```python
|
```python
|
||||||
from dcim.models import Site
|
from dcim.models import Site
|
||||||
|
|||||||
@ -67,23 +67,45 @@ class MyModel(ExportTemplatesMixin, TagsMixin, models.Model):
|
|||||||
...
|
...
|
||||||
```
|
```
|
||||||
|
|
||||||
## Additional Models
|
### Additional Models
|
||||||
|
|
||||||
In addition to the base NetBoxModel class, the following additional classes are provided for convenience.
|
In addition to the base NetBoxModel class, the following additional classes are provided for convenience.
|
||||||
|
|
||||||
!!! info "These base classes were added to the plugins API in NetBox v4.5."
|
!!! info "These model classes were added to the plugins API in NetBox v4.5."
|
||||||
|
|
||||||
### PrimaryModel
|
#### PrimaryModel
|
||||||
|
|
||||||
PrimaryModel is the go-to class for most object types. It extends NetBoxModel with `description` and `comments` fields, and it introduces support for ownership assignment.
|
PrimaryModel is the go-to class for most object types. It extends NetBoxModel with `description` and `comments` fields, and it introduces support for ownership assignment.
|
||||||
|
|
||||||
### OrganizationalModel
|
| Field | Required | Unique | Description |
|
||||||
|
|---------------|----------|--------|---------------------------------------------|
|
||||||
|
| `owner` | No | No | The object's owner |
|
||||||
|
| `description` | No | No | A human-friendly description for the object |
|
||||||
|
| `comments` | No | No | General comments |
|
||||||
|
|
||||||
OrganizationalModel is used by object types whose function is primarily the organization of other objects. It adds to NetBoxModel fields for `name`, `slug`, and `description`. It also supports ownership assignment.
|
#### OrganizationalModel
|
||||||
|
|
||||||
### NestedGroupModel
|
OrganizationalModel is used by object types whose function is primarily the organization of other objects.
|
||||||
|
|
||||||
NestedGroupModel is used for objects which arrange into a recursive hierarchy (like regions and locations) via its self-referential `parent` foreign key. It adds to NetBoxModel fields for `name`, `slug`, `description`, and `comments`. It also supports ownership assignment.
|
| Field | Required | Unique | Description |
|
||||||
|
|---------------|----------|--------|---------------------------------------------|
|
||||||
|
| `name` | Yes | Yes | The name of the object |
|
||||||
|
| `slug` | Yes | Yes | A unique URL-friendly identifier |
|
||||||
|
| `owner` | No | No | The object's owner |
|
||||||
|
| `description` | No | No | A human-friendly description for the object |
|
||||||
|
|
||||||
|
#### NestedGroupModel
|
||||||
|
|
||||||
|
NestedGroupModel is used for objects which arrange into a recursive hierarchy (like regions and locations) via its self-referential `parent` foreign key.
|
||||||
|
|
||||||
|
| Field | Required | Unique | Description |
|
||||||
|
|---------------|----------|--------|-----------------------------------------------------------------|
|
||||||
|
| `name` | Yes | Yes | The name of the object |
|
||||||
|
| `slug` | Yes | Yes | A unique URL-friendly identifier |
|
||||||
|
| `parent` | No | No | The object (of the same type) under which this object is nested |
|
||||||
|
| `owner` | No | No | The object's owner |
|
||||||
|
| `description` | No | No | A human-friendly description for the object |
|
||||||
|
| `comments` | No | No | General comments |
|
||||||
|
|
||||||
## Database Migrations
|
## Database Migrations
|
||||||
|
|
||||||
|
|||||||
@ -27,7 +27,7 @@ Serializers are responsible for converting Python objects to JSON data suitable
|
|||||||
|
|
||||||
The default nested representation of an object is defined by the `brief_fields` attributes under the serializer's `Meta` class. (Older versions of NetBox required the definition of a separate nested serializer.)
|
The default nested representation of an object is defined by the `brief_fields` attributes under the serializer's `Meta` class. (Older versions of NetBox required the definition of a separate nested serializer.)
|
||||||
|
|
||||||
In addition to the base NetBoxModelSerializer class, the following serializer classes are also available for applicable models.
|
In addition to the base NetBoxModelSerializer class, the following serializer classes are also available for subclasses of standard base models.
|
||||||
|
|
||||||
| Model Class | Serializer Class |
|
| Model Class | Serializer Class |
|
||||||
|-----------------------|--------------------------------------------------------|
|
|-----------------------|--------------------------------------------------------|
|
||||||
|
|||||||
@ -36,7 +36,7 @@ class MyModelTable(NetBoxTable):
|
|||||||
default_columns = ('pk', 'name', ...)
|
default_columns = ('pk', 'name', ...)
|
||||||
```
|
```
|
||||||
|
|
||||||
In addition to the base NetBoxTable class, the following table classes are also available for applicable models.
|
In addition to the base NetBoxTable class, the following table classes are also available for subclasses of standard base models.
|
||||||
|
|
||||||
| Model Class | Serializer Class |
|
| Model Class | Serializer Class |
|
||||||
|-----------------------|------------------------------------------|
|
|-----------------------|------------------------------------------|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user