Перейти к содержанию

Параметры данных и валидации

CUSTOM_VALIDATORS

Совет

Динамический параметр конфигурации

Это сопоставление моделей с пользовательскими валидаторами, которые были определены локально для применения пользовательской логики валидации. Пример приведён ниже:

CUSTOM_VALIDATORS = {
    "dcim.site": [
        {
            "name": {
                "min_length": 5,
                "max_length": 30
            }
        },
        "my_plugin.validators.Validator1"
    ],
    "dcim.device": [
        "my_plugin.validators.Validator1"
    ]
}

FIELD_CHOICES

Некоторые статические поля выбора в моделях могут быть настроены с пользовательскими значениями. Это делается путём определения FIELD_CHOICES как словаря, сопоставляющего поля модели с их вариантами выбора. Каждый вариант в списке должен иметь значение базы данных и удобочитаемую метку и может опционально указывать цвет. (Список доступных цветов приведён ниже.)

Предоставленные варианты могут либо заменить стандартные варианты, предоставляемые InfraVision, либо дополнить их. Чтобы заменить доступные варианты, укажите приложение, модель и имя поля, разделённые точками. Например, модель площадки будет указана как dcim.Site.status. Чтобы расширить доступные варианты, добавьте знак плюс в конец этой строки (например, dcim.Site.status+).

Например, следующая конфигурация заменит стандартные варианты статуса площадки на опции Foo, Bar и Baz:

FIELD_CHOICES = {
    'dcim.Site.status': (
        ('foo', 'Foo', 'red'),
        ('bar', 'Bar', 'green'),
        ('baz', 'Baz', 'blue'),
    )
}

Добавление знака плюс к идентификатору поля вместо этого добавит эти варианты к уже предлагаемым:

FIELD_CHOICES = {
    'dcim.Site.status+': (
        ...
    )
}

Следующие поля моделей поддерживают настраиваемые варианты:

  • 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

Поддерживаются следующие цвета:

  • blue
  • indigo
  • purple
  • pink
  • red
  • orange
  • yellow
  • green
  • teal
  • cyan
  • gray
  • black
  • white

PROTECTION_RULES

Совет

Динамический параметр конфигурации

Это сопоставление моделей с пользовательскими валидаторами, по которым оценивается объект непосредственно перед его удалением. Если валидация не проходит, объект не удаляется. Пример приведён ниже:

PROTECTION_RULES = {
    "dcim.site": [
        {
            "status": {
                "eq": "decommissioning"
            }
        },
        "my_plugin.validators.Validator1",
    ]
}