mirror of
https://github.com/netbox-community/netbox.git
synced 2024-05-10 07:54:54 +00:00
111 lines
2.9 KiB
Markdown
111 lines
2.9 KiB
Markdown
# Data & Validation Parameters
|
|
|
|
## CUSTOM_VALIDATORS
|
|
|
|
!!! tip "Dynamic Configuration Parameter"
|
|
|
|
This is a mapping of models to [custom validators](../customization/custom-validation.md) that have been defined locally to enforce custom validation logic. An example is provided below:
|
|
|
|
```python
|
|
CUSTOM_VALIDATORS = {
|
|
"dcim.site": [
|
|
{
|
|
"name": {
|
|
"min_length": 5,
|
|
"max_length": 30
|
|
}
|
|
},
|
|
"my_plugin.validators.Validator1"
|
|
],
|
|
"dim.device": [
|
|
"my_plugin.validators.Validator1"
|
|
]
|
|
}
|
|
```
|
|
|
|
---
|
|
|
|
## FIELD_CHOICES
|
|
|
|
Some static choice fields on models can be configured with custom values. This is done by defining `FIELD_CHOICES` as a dictionary mapping model fields to their choices. Each choice in the list must have a database value and a human-friendly label, and may optionally specify a color. (A list of available colors is provided below.)
|
|
|
|
The choices provided can either replace the stock choices provided by NetBox, or append to them. To _replace_ the available choices, specify the app, model, and field name separated by dots. For example, the site model would be referenced as `dcim.Site.status`. To _extend_ the available choices, append a plus sign to the end of this string (e.g. `dcim.Site.status+`).
|
|
|
|
For example, the following configuration would replace the default site status choices with the options Foo, Bar, and Baz:
|
|
|
|
```python
|
|
FIELD_CHOICES = {
|
|
'dcim.Site.status': (
|
|
('foo', 'Foo', 'red'),
|
|
('bar', 'Bar', 'green'),
|
|
('baz', 'Baz', 'blue'),
|
|
)
|
|
}
|
|
```
|
|
|
|
Appending a plus sign to the field identifier would instead _add_ these choices to the ones already offered:
|
|
|
|
```python
|
|
FIELD_CHOICES = {
|
|
'dcim.Site.status+': (
|
|
...
|
|
)
|
|
}
|
|
```
|
|
|
|
The following model fields support configurable choices:
|
|
|
|
* `circuits.Circuit.status`
|
|
* `dcim.Device.status`
|
|
* `dcim.Location.status`
|
|
* `dcim.Module.status`
|
|
* `dcim.PowerFeed.status`
|
|
* `dcim.Rack.status`
|
|
* `dcim.Site.status`
|
|
* `dcim.VirtualDeviceContext.status`
|
|
* `extras.JournalEntry.kind`
|
|
* `ipam.IPAddress.status`
|
|
* `ipam.IPRange.status`
|
|
* `ipam.Prefix.status`
|
|
* `ipam.VLAN.status`
|
|
* `virtualization.Cluster.status`
|
|
* `virtualization.VirtualMachine.status`
|
|
* `wireless.WirelessLAN.status`
|
|
|
|
The following colors are supported:
|
|
|
|
* `blue`
|
|
* `indigo`
|
|
* `purple`
|
|
* `pink`
|
|
* `red`
|
|
* `orange`
|
|
* `yellow`
|
|
* `green`
|
|
* `teal`
|
|
* `cyan`
|
|
* `gray`
|
|
* `black`
|
|
* `white`
|
|
|
|
---
|
|
|
|
## PROTECTION_RULES
|
|
|
|
!!! tip "Dynamic Configuration Parameter"
|
|
|
|
This is a mapping of models to [custom validators](../customization/custom-validation.md) against which an object is evaluated immediately prior to its deletion. If validation fails, the object is not deleted. An example is provided below:
|
|
|
|
```python
|
|
PROTECTION_RULES = {
|
|
"dcim.site": [
|
|
{
|
|
"status": {
|
|
"eq": "decommissioning"
|
|
}
|
|
},
|
|
"my_plugin.validators.Validator1",
|
|
]
|
|
}
|
|
```
|