nautobot 2.3.16__py3-none-any.whl → 2.4.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of nautobot might be problematic. Click here for more details.
- nautobot/__init__.py +15 -0
- nautobot/apps/__init__.py +1 -1
- nautobot/apps/api.py +8 -10
- nautobot/apps/change_logging.py +2 -2
- nautobot/apps/choices.py +4 -4
- nautobot/apps/config.py +32 -3
- nautobot/apps/events.py +19 -0
- nautobot/apps/exceptions.py +0 -2
- nautobot/apps/factory.py +2 -2
- nautobot/apps/filters.py +1 -1
- nautobot/apps/forms.py +20 -20
- nautobot/apps/graphql.py +2 -2
- nautobot/apps/jobs.py +8 -8
- nautobot/apps/models.py +19 -19
- nautobot/apps/tables.py +1 -1
- nautobot/apps/testing.py +10 -10
- nautobot/apps/ui.py +44 -9
- nautobot/apps/utils.py +7 -15
- nautobot/apps/views.py +8 -6
- nautobot/circuits/api/serializers.py +1 -0
- nautobot/circuits/api/views.py +4 -8
- nautobot/circuits/navigation.py +0 -57
- nautobot/circuits/templates/circuits/circuit_create.html +1 -7
- nautobot/circuits/templates/circuits/circuit_retrieve.html +0 -71
- nautobot/circuits/templates/circuits/inc/circuit_termination.html +6 -64
- nautobot/circuits/templates/circuits/inc/circuit_termination_cable_fragment.html +40 -0
- nautobot/circuits/templates/circuits/inc/circuit_termination_header_extra_content.html +26 -0
- nautobot/circuits/templates/circuits/provider_retrieve.html +0 -76
- nautobot/circuits/tests/integration/test_relationships.py +33 -24
- nautobot/circuits/tests/test_filters.py +4 -8
- nautobot/circuits/views.py +140 -23
- nautobot/cloud/api/views.py +6 -10
- nautobot/cloud/factory.py +4 -1
- nautobot/cloud/tests/test_filters.py +5 -4
- nautobot/cloud/views.py +0 -16
- nautobot/core/api/constants.py +11 -0
- nautobot/core/api/filter_backends.py +3 -9
- nautobot/core/api/metadata.py +28 -256
- nautobot/core/api/pagination.py +3 -2
- nautobot/core/api/renderers.py +3 -0
- nautobot/core/api/schema.py +13 -2
- nautobot/core/api/serializers.py +45 -259
- nautobot/core/api/urls.py +3 -4
- nautobot/core/api/utils.py +0 -62
- nautobot/core/api/views.py +99 -157
- nautobot/core/apps/__init__.py +22 -578
- nautobot/core/celery/__init__.py +13 -0
- nautobot/core/celery/schedulers.py +47 -2
- nautobot/core/choices.py +2 -2
- nautobot/core/cli/__init__.py +8 -0
- nautobot/core/constants.py +7 -0
- nautobot/core/events/__init__.py +116 -0
- nautobot/core/events/base.py +27 -0
- nautobot/core/events/exceptions.py +10 -0
- nautobot/core/events/redis_broker.py +48 -0
- nautobot/core/events/syslog_broker.py +19 -0
- nautobot/core/exceptions.py +0 -6
- nautobot/core/forms/__init__.py +19 -19
- nautobot/core/forms/fields.py +57 -9
- nautobot/core/forms/forms.py +33 -2
- nautobot/core/forms/utils.py +2 -1
- nautobot/core/graphql/schema.py +3 -1
- nautobot/core/jobs/__init__.py +24 -3
- nautobot/core/jobs/bulk_actions.py +248 -0
- nautobot/core/jobs/cleanup.py +1 -1
- nautobot/core/management/commands/generate_test_data.py +21 -0
- nautobot/core/middleware.py +16 -0
- nautobot/core/models/fields.py +11 -7
- nautobot/core/settings.py +68 -4
- nautobot/core/settings.yaml +99 -0
- nautobot/core/tables.py +10 -46
- nautobot/core/tasks.py +1 -1
- nautobot/core/templates/about.html +67 -0
- nautobot/core/templates/components/button/default.html +7 -0
- nautobot/core/templates/components/button/dropdown.html +20 -0
- nautobot/core/templates/components/layout/one_over_two.html +19 -0
- nautobot/core/templates/components/layout/two_over_one.html +19 -0
- nautobot/core/templates/components/panel/body_content_data_table.html +27 -0
- nautobot/core/templates/components/panel/body_content_objects_table.html +4 -0
- nautobot/core/templates/components/panel/body_content_tags.html +6 -0
- nautobot/core/templates/components/panel/body_content_text.html +12 -0
- nautobot/core/templates/components/panel/body_wrapper_generic.html +3 -0
- nautobot/core/templates/components/panel/body_wrapper_key_value_table.html +3 -0
- nautobot/core/templates/components/panel/body_wrapper_table.html +3 -0
- nautobot/core/templates/components/panel/footer_contacts_table.html +20 -0
- nautobot/core/templates/components/panel/footer_content_table.html +14 -0
- nautobot/core/templates/components/panel/grouping_toggle.html +14 -0
- nautobot/core/templates/components/panel/header_extra_content_table.html +3 -0
- nautobot/core/templates/components/panel/panel.html +16 -0
- nautobot/core/templates/components/panel/stats_panel_body.html +8 -0
- nautobot/core/templates/components/tab/content_wrapper.html +3 -0
- nautobot/core/templates/components/tab/label_wrapper.html +5 -0
- nautobot/core/templates/components/tab/label_wrapper_distinct_view.html +3 -0
- nautobot/core/templates/generic/object_retrieve.html +28 -17
- nautobot/core/templates/inc/computed_fields/panel_data.html +4 -7
- nautobot/core/templates/inc/custom_fields/panel.html +2 -2
- nautobot/core/templates/inc/custom_fields/panel_data.html +4 -7
- nautobot/core/templates/inc/footer.html +1 -0
- nautobot/core/templates/inc/nav_menu.html +2 -1
- nautobot/core/templates/inc/relationships_panel.html +1 -1
- nautobot/core/templates/inc/tenancy_form_panel.html +9 -0
- nautobot/core/templates/inc/tenant_table_row.html +11 -0
- nautobot/core/templates/nautobot_config.py.j2 +13 -0
- nautobot/core/templates/panel_table.html +12 -0
- nautobot/core/templates/utilities/render_jinja2.html +117 -0
- nautobot/core/templates/utilities/templatetags/tag.html +1 -1
- nautobot/core/templates/utilities/theme_preview.html +7 -0
- nautobot/core/templatetags/helpers.py +104 -6
- nautobot/core/templatetags/ui_framework.py +40 -0
- nautobot/core/testing/__init__.py +8 -8
- nautobot/core/testing/api.py +187 -137
- nautobot/core/testing/context.py +18 -0
- nautobot/core/testing/filters.py +41 -35
- nautobot/core/testing/forms.py +2 -0
- nautobot/core/testing/views.py +65 -148
- nautobot/core/tests/integration/test_view_authentication.py +1 -1
- nautobot/core/tests/nautobot_config.py +198 -0
- nautobot/core/tests/runner.py +2 -2
- nautobot/core/tests/test_api.py +154 -176
- nautobot/core/tests/test_events.py +214 -0
- nautobot/core/tests/test_forms.py +1 -0
- nautobot/core/tests/test_jinja_filters.py +1 -0
- nautobot/core/tests/test_jobs.py +387 -14
- nautobot/core/tests/test_navigations.py +7 -241
- nautobot/core/tests/test_settings_schema.py +7 -0
- nautobot/core/tests/test_tables.py +100 -0
- nautobot/core/tests/test_templatetags_helpers.py +16 -0
- nautobot/core/tests/test_ui.py +150 -0
- nautobot/core/tests/test_utils.py +55 -18
- nautobot/core/tests/test_views.py +124 -5
- nautobot/core/ui/__init__.py +0 -0
- nautobot/core/ui/base.py +11 -0
- nautobot/core/ui/choices.py +44 -0
- nautobot/core/ui/homepage.py +167 -0
- nautobot/core/ui/nav.py +280 -0
- nautobot/core/ui/object_detail.py +1855 -0
- nautobot/core/ui/utils.py +36 -0
- nautobot/core/urls.py +6 -0
- nautobot/core/utils/config.py +30 -3
- nautobot/core/utils/lookup.py +12 -2
- nautobot/core/utils/querysets.py +64 -0
- nautobot/core/utils/requests.py +24 -9
- nautobot/core/views/__init__.py +48 -1
- nautobot/core/views/generic.py +37 -140
- nautobot/core/views/mixins.py +82 -32
- nautobot/core/views/paginator.py +8 -5
- nautobot/core/views/renderers.py +9 -9
- nautobot/core/views/utils.py +11 -0
- nautobot/core/wsgi.py +3 -3
- nautobot/dcim/api/serializers.py +34 -141
- nautobot/dcim/api/urls.py +5 -0
- nautobot/dcim/api/views.py +57 -110
- nautobot/dcim/apps.py +1 -0
- nautobot/dcim/choices.py +28 -0
- nautobot/dcim/factory.py +58 -0
- nautobot/dcim/filters/__init__.py +204 -2
- nautobot/dcim/forms.py +219 -9
- nautobot/dcim/migrations/0063_interfacevdcassignment_virtualdevicecontext_and_more.py +165 -0
- nautobot/dcim/migrations/0064_virtualdevicecontext_status_data_migration.py +28 -0
- nautobot/dcim/migrations/0065_controller_capabilities_and_more.py +29 -0
- nautobot/dcim/migrations/0066_controllermanageddevicegroup_radio_profiles_and_more.py +33 -0
- nautobot/dcim/migrations/0067_controllermanageddevicegroup_tenant.py +25 -0
- nautobot/dcim/models/__init__.py +5 -1
- nautobot/dcim/models/devices.py +180 -2
- nautobot/dcim/models/racks.py +2 -2
- nautobot/dcim/navigation.py +25 -224
- nautobot/dcim/signals.py +44 -0
- nautobot/dcim/tables/__init__.py +2 -0
- nautobot/dcim/tables/devices.py +103 -7
- nautobot/dcim/tables/racks.py +1 -1
- nautobot/dcim/templates/dcim/controller/base.html +10 -0
- nautobot/dcim/templates/dcim/controller_create.html +2 -7
- nautobot/dcim/templates/dcim/controller_retrieve.html +6 -10
- nautobot/dcim/templates/dcim/controller_wirelessnetworks.html +25 -0
- nautobot/dcim/templates/dcim/controllermanageddevicegroup_create.html +68 -0
- nautobot/dcim/templates/dcim/controllermanageddevicegroup_retrieve.html +51 -0
- nautobot/dcim/templates/dcim/device/base.html +6 -42
- nautobot/dcim/templates/dcim/device/wireless.html +73 -0
- nautobot/dcim/templates/dcim/device.html +4 -10
- nautobot/dcim/templates/dcim/device_edit.html +36 -37
- nautobot/dcim/templates/dcim/interface.html +1 -0
- nautobot/dcim/templates/dcim/interface_edit.html +1 -0
- nautobot/dcim/templates/dcim/location.html +1 -9
- nautobot/dcim/templates/dcim/location_edit.html +1 -7
- nautobot/dcim/templates/dcim/locationtype.html +0 -107
- nautobot/dcim/templates/dcim/locationtype_retrieve.html +8 -0
- nautobot/dcim/templates/dcim/rack.html +1 -9
- nautobot/dcim/templates/dcim/rack_edit.html +1 -7
- nautobot/dcim/templates/dcim/rackreservation.html +1 -9
- nautobot/dcim/templates/dcim/virtualdevicecontext_retrieve.html +68 -0
- nautobot/dcim/templates/dcim/virtualdevicecontext_update.html +28 -0
- nautobot/dcim/tests/integration/test_controller.py +62 -0
- nautobot/dcim/tests/integration/test_controller_managed_device_group.py +71 -0
- nautobot/dcim/tests/test_api.py +188 -64
- nautobot/dcim/tests/test_filters.py +171 -76
- nautobot/dcim/tests/test_jobs.py +118 -0
- nautobot/dcim/tests/test_models.py +157 -6
- nautobot/dcim/tests/test_signals.py +1 -0
- nautobot/dcim/tests/test_views.py +118 -88
- nautobot/dcim/urls.py +72 -27
- nautobot/dcim/utils.py +2 -2
- nautobot/dcim/views.py +356 -61
- nautobot/extras/api/serializers.py +39 -18
- nautobot/extras/api/urls.py +4 -0
- nautobot/extras/api/views.py +89 -31
- nautobot/extras/choices.py +13 -0
- nautobot/extras/constants.py +2 -1
- nautobot/extras/context_managers.py +23 -6
- nautobot/extras/datasources/git.py +4 -1
- nautobot/extras/factory.py +27 -0
- nautobot/extras/filters/__init__.py +66 -5
- nautobot/extras/forms/base.py +2 -2
- nautobot/extras/forms/forms.py +262 -59
- nautobot/extras/forms/mixins.py +2 -2
- nautobot/extras/graphql/types.py +25 -1
- nautobot/extras/jobs.py +109 -15
- nautobot/extras/management/__init__.py +1 -0
- nautobot/extras/management/commands/runjob.py +7 -79
- nautobot/extras/management/commands/runjob_with_job_result.py +46 -0
- nautobot/extras/management/utils.py +87 -0
- nautobot/extras/migrations/0117_create_job_queue_model.py +129 -0
- nautobot/extras/migrations/0118_task_queue_to_job_queue_migration.py +78 -0
- nautobot/extras/migrations/0119_remove_task_queues_from_job_and_queue_from_scheduled_job.py +28 -0
- nautobot/extras/migrations/0120_job_is_singleton_job_is_singleton_override.py +22 -0
- nautobot/extras/migrations/0121_alter_team_contacts.py +17 -0
- nautobot/extras/models/__init__.py +5 -1
- nautobot/extras/models/change_logging.py +7 -3
- nautobot/extras/models/contacts.py +1 -1
- nautobot/extras/models/groups.py +0 -2
- nautobot/extras/models/jobs.py +233 -33
- nautobot/extras/models/relationships.py +69 -1
- nautobot/extras/models/secrets.py +5 -0
- nautobot/extras/navigation.py +20 -262
- nautobot/extras/plugins/__init__.py +54 -19
- nautobot/extras/plugins/marketplace_manifest.yml +455 -0
- nautobot/extras/plugins/tables.py +16 -14
- nautobot/extras/plugins/urls.py +1 -0
- nautobot/extras/plugins/views.py +103 -60
- nautobot/extras/registry.py +1 -1
- nautobot/extras/secrets/__init__.py +2 -2
- nautobot/extras/signals.py +39 -1
- nautobot/extras/tables.py +37 -1
- nautobot/extras/templates/extras/dynamicgroup.html +1 -9
- nautobot/extras/templates/extras/externalintegration_retrieve.html +0 -47
- nautobot/extras/templates/extras/inc/tags_panel.html +1 -5
- nautobot/extras/templates/extras/job_bulk_edit.html +2 -1
- nautobot/extras/templates/extras/job_detail.html +52 -6
- nautobot/extras/templates/extras/job_edit.html +6 -2
- nautobot/extras/templates/extras/job_list.html +2 -7
- nautobot/extras/templates/extras/jobqueue_retrieve.html +36 -0
- nautobot/extras/templates/extras/marketplace.html +296 -0
- nautobot/extras/templates/extras/plugin_detail.html +32 -15
- nautobot/extras/templates/extras/plugins_list.html +35 -1
- nautobot/extras/templates/extras/plugins_tiles.html +90 -0
- nautobot/extras/templates/extras/role_retrieve.html +16 -0
- nautobot/extras/templates/extras/secret.html +0 -65
- nautobot/extras/templates/extras/secret_check.js +16 -0
- nautobot/extras/templates/extras/secret_create.html +114 -0
- nautobot/extras/templates/extras/secret_edit.html +1 -114
- nautobot/extras/templates/extras/secretsgroup_edit.html +1 -1
- nautobot/extras/templates/extras/templatetags/plugin_object_detail_tabs.html +2 -0
- nautobot/extras/templatetags/job_buttons.py +5 -4
- nautobot/extras/templatetags/plugins.py +69 -6
- nautobot/extras/test_jobs/singleton.py +16 -0
- nautobot/extras/tests/test_api.py +145 -43
- nautobot/extras/tests/test_context_managers.py +4 -1
- nautobot/extras/tests/test_filters.py +213 -529
- nautobot/extras/tests/test_job_variables.py +73 -152
- nautobot/extras/tests/test_jobs.py +181 -51
- nautobot/extras/tests/test_models.py +61 -6
- nautobot/extras/tests/test_plugins.py +62 -9
- nautobot/extras/tests/test_relationships.py +123 -9
- nautobot/extras/tests/test_utils.py +23 -2
- nautobot/extras/tests/test_views.py +146 -145
- nautobot/extras/tests/test_webhooks.py +2 -1
- nautobot/extras/urls.py +2 -20
- nautobot/extras/utils.py +119 -4
- nautobot/extras/views.py +168 -125
- nautobot/extras/webhooks.py +5 -2
- nautobot/ipam/api/serializers.py +10 -103
- nautobot/ipam/api/views.py +31 -49
- nautobot/ipam/factory.py +1 -1
- nautobot/ipam/filters.py +3 -2
- nautobot/ipam/models.py +10 -12
- nautobot/ipam/navigation.py +0 -90
- nautobot/ipam/tables.py +3 -1
- nautobot/ipam/templates/ipam/ipaddress.html +1 -9
- nautobot/ipam/templates/ipam/ipaddress_bulk_add.html +1 -7
- nautobot/ipam/templates/ipam/ipaddress_edit.html +1 -7
- nautobot/ipam/templates/ipam/prefix.html +1 -9
- nautobot/ipam/templates/ipam/prefix_edit.html +1 -7
- nautobot/ipam/templates/ipam/routetarget.html +0 -28
- nautobot/ipam/templates/ipam/vlan.html +1 -9
- nautobot/ipam/templates/ipam/vlan_edit.html +1 -7
- nautobot/ipam/templates/ipam/vrf.html +0 -47
- nautobot/ipam/templates/ipam/vrf_edit.html +1 -7
- nautobot/ipam/tests/test_api.py +7 -5
- nautobot/ipam/tests/test_filters.py +39 -119
- nautobot/ipam/tests/test_forms.py +0 -2
- nautobot/ipam/tests/test_models.py +56 -36
- nautobot/ipam/tests/test_views.py +3 -0
- nautobot/ipam/urls.py +3 -69
- nautobot/ipam/utils/__init__.py +16 -10
- nautobot/ipam/views.py +91 -162
- nautobot/project-static/bootstrap-3.4.1-dist/css/bootstrap-theme.css.map +1 -1
- nautobot/project-static/bootstrap-3.4.1-dist/css/bootstrap-theme.min.css.map +1 -1
- nautobot/project-static/bootstrap-3.4.1-dist/css/bootstrap.css +40 -2
- nautobot/project-static/bootstrap-3.4.1-dist/css/bootstrap.css.map +1 -1
- nautobot/project-static/bootstrap-3.4.1-dist/css/bootstrap.min.css +1 -1
- nautobot/project-static/bootstrap-3.4.1-dist/css/bootstrap.min.css.map +1 -1
- nautobot/project-static/css/base.css +38 -3
- nautobot/project-static/docs/404.html +461 -17
- nautobot/project-static/docs/apps/index.html +461 -17
- nautobot/project-static/docs/apps/nautobot-apps.html +462 -19
- nautobot/project-static/docs/assets/_mkdocstrings.css +25 -1
- nautobot/project-static/docs/assets/extra.css +5 -1
- nautobot/project-static/docs/code-reference/nautobot/apps/__init__.html +477 -23
- nautobot/project-static/docs/code-reference/nautobot/apps/admin.html +474 -20
- nautobot/project-static/docs/code-reference/nautobot/apps/api.html +790 -289
- nautobot/project-static/docs/code-reference/nautobot/apps/change_logging.html +505 -31
- nautobot/project-static/docs/code-reference/nautobot/apps/choices.html +510 -34
- nautobot/project-static/docs/code-reference/nautobot/apps/config.html +471 -20
- nautobot/project-static/docs/code-reference/nautobot/apps/constants.html +467 -18
- nautobot/project-static/docs/code-reference/nautobot/apps/datasources.html +497 -33
- nautobot/project-static/docs/code-reference/nautobot/apps/events.html +9883 -0
- nautobot/project-static/docs/code-reference/nautobot/apps/exceptions.html +523 -75
- nautobot/project-static/docs/code-reference/nautobot/apps/factory.html +546 -51
- nautobot/project-static/docs/code-reference/nautobot/apps/filters.html +670 -94
- nautobot/project-static/docs/code-reference/nautobot/apps/forms.html +1030 -177
- nautobot/project-static/docs/code-reference/nautobot/apps/graphql.html +524 -49
- nautobot/project-static/docs/code-reference/nautobot/apps/jobs.html +874 -188
- nautobot/project-static/docs/code-reference/nautobot/apps/models.html +955 -235
- nautobot/project-static/docs/code-reference/nautobot/apps/querysets.html +475 -21
- nautobot/project-static/docs/code-reference/nautobot/apps/secrets.html +486 -28
- nautobot/project-static/docs/code-reference/nautobot/apps/tables.html +661 -99
- nautobot/project-static/docs/code-reference/nautobot/apps/testing.html +947 -479
- nautobot/project-static/docs/code-reference/nautobot/apps/ui.html +6425 -1234
- nautobot/project-static/docs/code-reference/nautobot/apps/urls.html +474 -20
- nautobot/project-static/docs/code-reference/nautobot/apps/utils.html +877 -344
- nautobot/project-static/docs/code-reference/nautobot/apps/views.html +828 -171
- nautobot/project-static/docs/development/apps/api/configuration-view.html +461 -17
- nautobot/project-static/docs/development/apps/api/database-backend-config.html +461 -17
- nautobot/project-static/docs/development/apps/api/models/django-admin.html +461 -17
- nautobot/project-static/docs/development/apps/api/models/global-search.html +461 -17
- nautobot/project-static/docs/development/apps/api/models/graphql.html +461 -17
- nautobot/project-static/docs/development/apps/api/models/index.html +461 -17
- nautobot/project-static/docs/development/apps/api/nautobot-app-config.html +461 -17
- nautobot/project-static/docs/development/apps/api/platform-features/custom-validators.html +461 -17
- nautobot/project-static/docs/development/apps/api/platform-features/filter-extensions.html +461 -17
- nautobot/project-static/docs/development/apps/api/platform-features/git-repository-content.html +461 -17
- nautobot/project-static/docs/development/apps/api/platform-features/index.html +461 -17
- nautobot/project-static/docs/development/apps/api/platform-features/jinja2-filters.html +461 -17
- nautobot/project-static/docs/development/apps/api/platform-features/jobs.html +461 -17
- nautobot/project-static/docs/development/apps/api/platform-features/populating-extensibility-features.html +461 -17
- nautobot/project-static/docs/development/apps/api/platform-features/secrets-providers.html +461 -17
- nautobot/project-static/docs/development/apps/api/platform-features/table-extensions.html +461 -17
- nautobot/project-static/docs/development/apps/api/platform-features/uniquely-identify-objects.html +461 -17
- nautobot/project-static/docs/development/apps/api/prometheus.html +461 -17
- nautobot/project-static/docs/development/apps/api/setup.html +465 -153
- nautobot/project-static/docs/development/apps/api/testing.html +461 -17
- nautobot/project-static/docs/development/apps/api/ui-extensions/banners.html +461 -17
- nautobot/project-static/docs/development/apps/api/ui-extensions/home-page.html +461 -17
- nautobot/project-static/docs/development/apps/api/ui-extensions/index.html +461 -17
- nautobot/project-static/docs/development/apps/api/ui-extensions/navigation.html +461 -17
- nautobot/project-static/docs/development/apps/api/ui-extensions/object-views.html +741 -128
- nautobot/project-static/docs/development/apps/api/views/base-template.html +461 -17
- nautobot/project-static/docs/development/apps/api/views/core-view-overrides.html +461 -17
- nautobot/project-static/docs/development/apps/api/views/django-generic-views.html +461 -17
- nautobot/project-static/docs/development/apps/api/views/help-documentation.html +461 -17
- nautobot/project-static/docs/development/apps/api/views/index.html +463 -18
- nautobot/project-static/docs/development/apps/api/views/nautobot-generic-views.html +465 -17
- nautobot/project-static/docs/development/apps/api/views/nautobotuiviewset.html +491 -17
- nautobot/project-static/docs/development/apps/api/views/nautobotuiviewsetrouter.html +461 -17
- nautobot/project-static/docs/development/apps/api/views/notes.html +461 -17
- nautobot/project-static/docs/development/apps/api/views/rest-api.html +467 -19
- nautobot/project-static/docs/development/apps/api/views/urls.html +461 -17
- nautobot/project-static/docs/development/apps/index.html +461 -17
- nautobot/project-static/docs/development/apps/migration/code-updates.html +462 -50
- nautobot/project-static/docs/development/apps/migration/dependency-updates.html +462 -18
- nautobot/project-static/docs/development/apps/migration/from-v1.html +461 -17
- nautobot/project-static/docs/development/apps/migration/model-updates/dcim.html +461 -17
- nautobot/project-static/docs/development/apps/migration/model-updates/extras.html +461 -17
- nautobot/project-static/docs/development/apps/migration/model-updates/global.html +461 -17
- nautobot/project-static/docs/development/apps/migration/model-updates/ipam.html +464 -20
- nautobot/project-static/docs/development/apps/migration/ui-component-framework/best-practices.html +9261 -0
- nautobot/project-static/docs/development/apps/migration/ui-component-framework/custom-content.html +9375 -0
- nautobot/project-static/docs/development/apps/migration/ui-component-framework/index.html +9671 -0
- nautobot/project-static/docs/development/apps/migration/ui-component-framework/migration-steps.html +9559 -0
- nautobot/project-static/docs/development/apps/porting-from-netbox.html +464 -20
- nautobot/project-static/docs/development/core/application-registry.html +461 -17
- nautobot/project-static/docs/development/core/best-practices.html +461 -17
- nautobot/project-static/docs/development/core/bootstrap-ui.html +461 -17
- nautobot/project-static/docs/development/core/caching.html +461 -17
- nautobot/project-static/docs/development/core/controllers.html +463 -17
- nautobot/project-static/docs/development/core/docker-compose-advanced-use-cases.html +464 -20
- nautobot/project-static/docs/development/core/generic-views.html +461 -17
- nautobot/project-static/docs/development/core/getting-started.html +539 -127
- nautobot/project-static/docs/development/core/homepage.html +472 -28
- nautobot/project-static/docs/development/core/index.html +461 -17
- nautobot/project-static/docs/development/core/minikube-dev-environment-for-k8s-jobs.html +9754 -0
- nautobot/project-static/docs/development/core/model-checklist.html +471 -25
- nautobot/project-static/docs/development/core/model-features.html +461 -17
- nautobot/project-static/docs/development/core/natural-keys.html +461 -17
- nautobot/project-static/docs/development/core/navigation-menu.html +478 -24
- nautobot/project-static/docs/development/core/release-checklist.html +478 -46
- nautobot/project-static/docs/development/core/role-internals.html +461 -17
- nautobot/project-static/docs/development/core/settings.html +461 -17
- nautobot/project-static/docs/development/core/style-guide.html +464 -20
- nautobot/project-static/docs/development/core/templates.html +471 -20
- nautobot/project-static/docs/development/core/testing.html +461 -17
- nautobot/project-static/docs/development/core/ui-component-framework.html +11116 -0
- nautobot/project-static/docs/development/core/user-preferences.html +464 -20
- nautobot/project-static/docs/development/index.html +461 -17
- nautobot/project-static/docs/development/jobs/index.html +499 -19
- nautobot/project-static/docs/development/jobs/migration/from-v1.html +461 -17
- nautobot/project-static/docs/index.html +469 -36
- nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_edit.png +0 -0
- nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_edit_button.png +0 -0
- nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_list_nav.png +0 -0
- nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_list_view.png +0 -0
- nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_queue.png +0 -0
- nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_queue_add.png +0 -0
- nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_queue_config.png +0 -0
- nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_result_completed.png +0 -0
- nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_result_nav.png +0 -0
- nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_result_pending.png +0 -0
- nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_run_form.png +0 -0
- nautobot/project-static/docs/media/development/core/kubernetes/k8s_nautobot_login.png +0 -0
- nautobot/project-static/docs/media/development/core/kubernetes/k8s_run_job.png +0 -0
- nautobot/project-static/docs/media/development/core/kubernetes/k8s_run_scheduled_job_form.png +0 -0
- nautobot/project-static/docs/media/development/core/kubernetes/k8s_scheduled_job_result.png +0 -0
- nautobot/project-static/docs/media/development/core/ui-component-framework/basic-panel-layout.png +0 -0
- nautobot/project-static/docs/media/development/core/ui-component-framework/button-example.png +0 -0
- nautobot/project-static/docs/media/development/core/ui-component-framework/buttons-example.png +0 -0
- nautobot/project-static/docs/media/development/core/ui-component-framework/cluster-type-before-after-example.png +0 -0
- nautobot/project-static/docs/media/development/core/ui-component-framework/dropdown-button-example.png +0 -0
- nautobot/project-static/docs/media/development/core/ui-component-framework/grouped-key-value-table-panel-example-1.png +0 -0
- nautobot/project-static/docs/media/development/core/ui-component-framework/grouped-key-value-table-panel-example-2.png +0 -0
- nautobot/project-static/docs/media/development/core/ui-component-framework/object-fields-panel-example.png +0 -0
- nautobot/project-static/docs/media/development/core/ui-component-framework/object-fields-panel-example_2.png +0 -0
- nautobot/project-static/docs/media/development/core/ui-component-framework/stats-panel-example-code.png +0 -0
- nautobot/project-static/docs/media/development/core/ui-component-framework/stats-panel-example.png +0 -0
- nautobot/project-static/docs/media/development/core/ui-component-framework/table-panels-family.png +0 -0
- nautobot/project-static/docs/media/development/core/ui-component-framework/text-panels-family.png +0 -0
- nautobot/project-static/docs/media/development/core/ui-component-framework/ui-framework-example.png +0 -0
- nautobot/project-static/docs/media/models/virtual_device_context_overview.drawio +73 -0
- nautobot/project-static/docs/media/models/virtual_device_context_overview.png +0 -0
- nautobot/project-static/docs/models/dcim/virtualdevicecontext.html +14 -0
- nautobot/project-static/docs/models/extras/jobqueue.html +14 -0
- nautobot/project-static/docs/models/wireless/radioprofile.html +14 -0
- nautobot/project-static/docs/models/wireless/supporteddatarate.html +14 -0
- nautobot/project-static/docs/models/wireless/wirelessnetwork.html +14 -0
- nautobot/project-static/docs/objects.inv +0 -0
- nautobot/project-static/docs/overview/application_stack.html +467 -21
- nautobot/project-static/docs/overview/design_philosophy.html +461 -17
- nautobot/project-static/docs/release-notes/index.html +483 -20
- nautobot/project-static/docs/release-notes/version-1.0.html +649 -206
- nautobot/project-static/docs/release-notes/version-1.1.html +646 -203
- nautobot/project-static/docs/release-notes/version-1.2.html +721 -278
- nautobot/project-static/docs/release-notes/version-1.3.html +747 -304
- nautobot/project-static/docs/release-notes/version-1.4.html +832 -390
- nautobot/project-static/docs/release-notes/version-1.5.html +1020 -579
- nautobot/project-static/docs/release-notes/version-1.6.html +940 -516
- nautobot/project-static/docs/release-notes/version-2.0.html +943 -502
- nautobot/project-static/docs/release-notes/version-2.1.html +778 -337
- nautobot/project-static/docs/release-notes/version-2.2.html +771 -330
- nautobot/project-static/docs/release-notes/version-2.3.html +914 -471
- nautobot/project-static/docs/release-notes/version-2.4.html +10323 -0
- nautobot/project-static/docs/search/search_index.json +1 -1
- nautobot/project-static/docs/sitemap.xml +342 -270
- nautobot/project-static/docs/sitemap.xml.gz +0 -0
- nautobot/project-static/docs/user-guide/administration/configuration/authentication/ldap.html +461 -17
- nautobot/project-static/docs/user-guide/administration/configuration/authentication/remote.html +461 -17
- nautobot/project-static/docs/user-guide/administration/configuration/authentication/sso.html +461 -17
- nautobot/project-static/docs/user-guide/administration/configuration/index.html +473 -30
- nautobot/project-static/docs/user-guide/administration/configuration/redis.html +461 -17
- nautobot/project-static/docs/user-guide/administration/configuration/settings.html +842 -155
- nautobot/project-static/docs/user-guide/administration/configuration/time-zones.html +461 -17
- nautobot/project-static/docs/user-guide/administration/guides/celery-queues.html +461 -17
- nautobot/project-static/docs/user-guide/administration/guides/docker.html +474 -27
- nautobot/project-static/docs/user-guide/administration/guides/health-checks.html +461 -17
- nautobot/project-static/docs/user-guide/administration/guides/permissions.html +461 -17
- nautobot/project-static/docs/user-guide/administration/guides/prometheus-metrics.html +461 -17
- nautobot/project-static/docs/user-guide/administration/guides/replicating-nautobot.html +461 -17
- nautobot/project-static/docs/user-guide/administration/guides/request-profiling.html +461 -17
- nautobot/project-static/docs/user-guide/administration/guides/s3-django-storage.html +463 -19
- nautobot/project-static/docs/user-guide/administration/guides/selinux-troubleshooting.html +461 -17
- nautobot/project-static/docs/user-guide/administration/installation/app-install.html +461 -17
- nautobot/project-static/docs/user-guide/administration/installation/external-authentication.html +461 -17
- nautobot/project-static/docs/user-guide/administration/installation/http-server.html +481 -21
- nautobot/project-static/docs/user-guide/administration/installation/index.html +466 -18
- nautobot/project-static/docs/user-guide/administration/installation/install_system.html +462 -18
- nautobot/project-static/docs/user-guide/administration/installation/nautobot.html +461 -17
- nautobot/project-static/docs/user-guide/administration/installation/services.html +461 -17
- nautobot/project-static/docs/user-guide/administration/migration/migrating-from-netbox.html +461 -17
- nautobot/project-static/docs/user-guide/administration/migration/migrating-from-postgresql.html +482 -39
- nautobot/project-static/docs/user-guide/administration/tools/nautobot-server.html +475 -64
- nautobot/project-static/docs/user-guide/administration/tools/nautobot-shell.html +475 -64
- nautobot/project-static/docs/user-guide/administration/upgrading/database-backup.html +461 -17
- nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/after-you-upgrade.html +461 -17
- nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/before-you-upgrade.html +461 -17
- nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/for-developers.html +461 -17
- nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/index.html +461 -17
- nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/whats-changed.html +464 -21
- nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/region-and-site-data-migration-guide.html +461 -17
- nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/tables/v2-code-nautobot-app-location.yaml +0 -16
- nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/upgrading-from-nautobot-v1.html +461 -17
- nautobot/project-static/docs/user-guide/administration/upgrading/upgrading.html +467 -19
- nautobot/project-static/docs/user-guide/core-data-model/circuits/circuit.html +461 -17
- nautobot/project-static/docs/user-guide/core-data-model/circuits/circuittermination.html +461 -17
- nautobot/project-static/docs/user-guide/core-data-model/circuits/circuittype.html +461 -17
- nautobot/project-static/docs/user-guide/core-data-model/circuits/provider.html +461 -17
- nautobot/project-static/docs/user-guide/core-data-model/circuits/providernetwork.html +461 -17
- nautobot/project-static/docs/user-guide/core-data-model/cloud/cloud.html +461 -17
- nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudaccount.html +461 -17
- nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudnetwork.html +461 -17
- nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudnetworkprefixassignment.html +461 -17
- nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudresourcetype.html +461 -17
- nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudservice.html +461 -17
- nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudservicenetworkassignment.html +461 -17
- nautobot/project-static/docs/user-guide/core-data-model/dcim/cable.html +461 -17
- nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleport.html +461 -17
- nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleporttemplate.html +461 -17
- nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleserverport.html +461 -17
- nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleserverporttemplate.html +461 -17
- nautobot/project-static/docs/user-guide/core-data-model/dcim/controller.html +497 -18
- nautobot/project-static/docs/user-guide/core-data-model/dcim/controllermanageddevicegroup.html +487 -20
- nautobot/project-static/docs/user-guide/core-data-model/dcim/device.html +461 -17
- nautobot/project-static/docs/user-guide/core-data-model/dcim/devicebay.html +461 -17
- nautobot/project-static/docs/user-guide/core-data-model/dcim/devicebaytemplate.html +461 -17
- nautobot/project-static/docs/user-guide/core-data-model/dcim/devicefamily.html +461 -17
- nautobot/project-static/docs/user-guide/core-data-model/dcim/deviceredundancygroup.html +461 -17
- nautobot/project-static/docs/user-guide/core-data-model/dcim/devicetype.html +461 -17
- nautobot/project-static/docs/user-guide/core-data-model/dcim/frontport.html +461 -17
- nautobot/project-static/docs/user-guide/core-data-model/dcim/frontporttemplate.html +461 -17
- nautobot/project-static/docs/user-guide/core-data-model/dcim/interface.html +461 -17
- nautobot/project-static/docs/user-guide/core-data-model/dcim/interfaceredundancygroup.html +461 -17
- nautobot/project-static/docs/user-guide/core-data-model/dcim/interfacetemplate.html +461 -17
- nautobot/project-static/docs/user-guide/core-data-model/dcim/inventoryitem.html +461 -17
- nautobot/project-static/docs/user-guide/core-data-model/dcim/location.html +461 -17
- nautobot/project-static/docs/user-guide/core-data-model/dcim/locationtype.html +461 -17
- nautobot/project-static/docs/user-guide/core-data-model/dcim/manufacturer.html +461 -17
- nautobot/project-static/docs/user-guide/core-data-model/dcim/module.html +461 -17
- nautobot/project-static/docs/user-guide/core-data-model/dcim/modulebay.html +461 -17
- nautobot/project-static/docs/user-guide/core-data-model/dcim/modulebaytemplate.html +461 -17
- nautobot/project-static/docs/user-guide/core-data-model/dcim/moduletype.html +461 -17
- nautobot/project-static/docs/user-guide/core-data-model/dcim/platform.html +461 -17
- nautobot/project-static/docs/user-guide/core-data-model/dcim/powerfeed.html +461 -17
- nautobot/project-static/docs/user-guide/core-data-model/dcim/poweroutlet.html +461 -17
- nautobot/project-static/docs/user-guide/core-data-model/dcim/poweroutlettemplate.html +461 -17
- nautobot/project-static/docs/user-guide/core-data-model/dcim/powerpanel.html +461 -17
- nautobot/project-static/docs/user-guide/core-data-model/dcim/powerport.html +461 -17
- nautobot/project-static/docs/user-guide/core-data-model/dcim/powerporttemplate.html +461 -17
- nautobot/project-static/docs/user-guide/core-data-model/dcim/rack.html +461 -17
- nautobot/project-static/docs/user-guide/core-data-model/dcim/rackgroup.html +461 -17
- nautobot/project-static/docs/user-guide/core-data-model/dcim/rackreservation.html +461 -17
- nautobot/project-static/docs/user-guide/core-data-model/dcim/rearport.html +461 -17
- nautobot/project-static/docs/user-guide/core-data-model/dcim/rearporttemplate.html +461 -17
- nautobot/project-static/docs/user-guide/core-data-model/dcim/softwareimagefile.html +461 -17
- nautobot/project-static/docs/user-guide/core-data-model/dcim/softwareversion.html +461 -17
- nautobot/project-static/docs/user-guide/core-data-model/dcim/virtualchassis.html +461 -17
- nautobot/project-static/docs/user-guide/core-data-model/dcim/virtualdevicecontext.html +9375 -0
- nautobot/project-static/docs/user-guide/core-data-model/extras/configcontext.html +468 -28
- nautobot/project-static/docs/user-guide/core-data-model/extras/configcontextschema.html +461 -17
- nautobot/project-static/docs/user-guide/core-data-model/extras/contact.html +461 -17
- nautobot/project-static/docs/user-guide/core-data-model/extras/team.html +461 -17
- nautobot/project-static/docs/user-guide/core-data-model/ipam/ipaddress.html +461 -17
- nautobot/project-static/docs/user-guide/core-data-model/ipam/namespace.html +461 -17
- nautobot/project-static/docs/user-guide/core-data-model/ipam/prefix.html +461 -17
- nautobot/project-static/docs/user-guide/core-data-model/ipam/rir.html +461 -17
- nautobot/project-static/docs/user-guide/core-data-model/ipam/routetarget.html +461 -17
- nautobot/project-static/docs/user-guide/core-data-model/ipam/service.html +461 -17
- nautobot/project-static/docs/user-guide/core-data-model/ipam/vlan.html +461 -17
- nautobot/project-static/docs/user-guide/core-data-model/ipam/vlangroup.html +461 -17
- nautobot/project-static/docs/user-guide/core-data-model/ipam/vrf.html +461 -17
- nautobot/project-static/docs/user-guide/core-data-model/overview/introduction.html +464 -20
- nautobot/project-static/docs/user-guide/core-data-model/tenancy/tenant.html +461 -17
- nautobot/project-static/docs/user-guide/core-data-model/tenancy/tenantgroup.html +461 -17
- nautobot/project-static/docs/user-guide/core-data-model/virtualization/cluster.html +461 -17
- nautobot/project-static/docs/user-guide/core-data-model/virtualization/clustergroup.html +461 -17
- nautobot/project-static/docs/user-guide/core-data-model/virtualization/clustertype.html +461 -17
- nautobot/project-static/docs/user-guide/core-data-model/virtualization/virtualmachine.html +461 -17
- nautobot/project-static/docs/user-guide/core-data-model/virtualization/vminterface.html +464 -20
- nautobot/project-static/docs/user-guide/core-data-model/wireless/index.html +9313 -0
- nautobot/project-static/docs/user-guide/core-data-model/wireless/radioprofile.html +9217 -0
- nautobot/project-static/docs/user-guide/core-data-model/wireless/supporteddatarate.html +9211 -0
- nautobot/project-static/docs/user-guide/core-data-model/wireless/wirelessnetwork.html +9277 -0
- nautobot/project-static/docs/user-guide/feature-guides/contacts-and-teams.html +461 -17
- nautobot/project-static/docs/user-guide/feature-guides/custom-fields.html +461 -17
- nautobot/project-static/docs/user-guide/feature-guides/getting-started/creating-devices.html +461 -17
- nautobot/project-static/docs/user-guide/feature-guides/getting-started/creating-location-types-and-locations.html +461 -17
- nautobot/project-static/docs/user-guide/feature-guides/getting-started/index.html +461 -17
- nautobot/project-static/docs/user-guide/feature-guides/getting-started/interfaces.html +461 -17
- nautobot/project-static/docs/user-guide/feature-guides/getting-started/ipam.html +461 -17
- nautobot/project-static/docs/user-guide/feature-guides/getting-started/platforms.html +461 -17
- nautobot/project-static/docs/user-guide/feature-guides/getting-started/search-bar.html +461 -17
- nautobot/project-static/docs/user-guide/feature-guides/getting-started/tenants.html +461 -17
- nautobot/project-static/docs/user-guide/feature-guides/getting-started/vlans-and-vlan-groups.html +461 -17
- nautobot/project-static/docs/user-guide/feature-guides/git-data-source.html +466 -20
- nautobot/project-static/docs/user-guide/feature-guides/graphql.html +461 -17
- nautobot/project-static/docs/user-guide/feature-guides/images/wireless/central-mode.png +0 -0
- nautobot/project-static/docs/user-guide/feature-guides/images/wireless/device-group-add.png +0 -0
- nautobot/project-static/docs/user-guide/feature-guides/images/wireless/device-group-create-1.png +0 -0
- nautobot/project-static/docs/user-guide/feature-guides/images/wireless/device-group-create-2.png +0 -0
- nautobot/project-static/docs/user-guide/feature-guides/images/wireless/radio-profile-add.png +0 -0
- nautobot/project-static/docs/user-guide/feature-guides/images/wireless/radio-profile-create.png +0 -0
- nautobot/project-static/docs/user-guide/feature-guides/images/wireless/supported-data-rate-add.png +0 -0
- nautobot/project-static/docs/user-guide/feature-guides/images/wireless/supported-data-rate-create.png +0 -0
- nautobot/project-static/docs/user-guide/feature-guides/images/wireless/wireless-controller-add.png +0 -0
- nautobot/project-static/docs/user-guide/feature-guides/images/wireless/wireless-controller-create-1.png +0 -0
- nautobot/project-static/docs/user-guide/feature-guides/images/wireless/wireless-controller-create-2.png +0 -0
- nautobot/project-static/docs/user-guide/feature-guides/images/wireless/wireless-network-add.png +0 -0
- nautobot/project-static/docs/user-guide/feature-guides/images/wireless/wireless-network-create.png +0 -0
- nautobot/project-static/docs/user-guide/feature-guides/ip-address-merge-tool.html +461 -17
- nautobot/project-static/docs/user-guide/feature-guides/relationships.html +461 -17
- nautobot/project-static/docs/user-guide/feature-guides/software-image-files-and-versions.html +464 -20
- nautobot/project-static/docs/user-guide/feature-guides/wireless-networks-and-controllers.html +9444 -0
- nautobot/project-static/docs/user-guide/index.html +461 -17
- nautobot/project-static/docs/user-guide/platform-functionality/change-logging.html +464 -20
- nautobot/project-static/docs/user-guide/platform-functionality/computedfield.html +465 -21
- nautobot/project-static/docs/user-guide/platform-functionality/customfield.html +461 -17
- nautobot/project-static/docs/user-guide/platform-functionality/customlink.html +461 -17
- nautobot/project-static/docs/user-guide/platform-functionality/dynamicgroup.html +461 -17
- nautobot/project-static/docs/user-guide/platform-functionality/events.html +9617 -0
- nautobot/project-static/docs/user-guide/platform-functionality/exporttemplate.html +464 -20
- nautobot/project-static/docs/user-guide/platform-functionality/externalintegration.html +461 -17
- nautobot/project-static/docs/user-guide/platform-functionality/gitrepository.html +461 -17
- nautobot/project-static/docs/user-guide/platform-functionality/graphql.html +461 -17
- nautobot/project-static/docs/user-guide/platform-functionality/graphqlquery.html +461 -17
- nautobot/project-static/docs/user-guide/platform-functionality/imageattachment.html +461 -17
- nautobot/project-static/docs/user-guide/platform-functionality/jobs/index.html +470 -21
- nautobot/project-static/docs/user-guide/platform-functionality/jobs/job-scheduling-and-approvals.html +464 -20
- nautobot/project-static/docs/user-guide/platform-functionality/jobs/jobbutton.html +464 -20
- nautobot/project-static/docs/user-guide/platform-functionality/jobs/jobhook.html +461 -17
- nautobot/project-static/docs/user-guide/platform-functionality/jobs/jobqueue.html +9224 -0
- nautobot/project-static/docs/user-guide/platform-functionality/jobs/kubernetes-job-support.html +9722 -0
- nautobot/project-static/docs/user-guide/platform-functionality/jobs/models.html +464 -20
- nautobot/project-static/docs/user-guide/platform-functionality/napalm.html +461 -17
- nautobot/project-static/docs/user-guide/platform-functionality/note.html +461 -17
- nautobot/project-static/docs/user-guide/platform-functionality/objectmetadata.html +461 -17
- nautobot/project-static/docs/user-guide/platform-functionality/relationship.html +465 -21
- nautobot/project-static/docs/user-guide/platform-functionality/rendering-jinja-templates.html +9292 -0
- nautobot/project-static/docs/user-guide/platform-functionality/rest-api/authentication.html +461 -17
- nautobot/project-static/docs/user-guide/platform-functionality/rest-api/filtering.html +509 -38
- nautobot/project-static/docs/user-guide/platform-functionality/rest-api/overview.html +492 -21
- nautobot/project-static/docs/user-guide/platform-functionality/rest-api/ui-related-endpoints.html +461 -17
- nautobot/project-static/docs/user-guide/platform-functionality/role.html +461 -17
- nautobot/project-static/docs/user-guide/platform-functionality/savedview.html +461 -17
- nautobot/project-static/docs/user-guide/platform-functionality/secret.html +461 -17
- nautobot/project-static/docs/user-guide/platform-functionality/staticgroupassociation.html +464 -20
- nautobot/project-static/docs/user-guide/platform-functionality/status.html +461 -17
- nautobot/project-static/docs/user-guide/platform-functionality/tag.html +461 -17
- nautobot/project-static/docs/user-guide/platform-functionality/template-filters.html +529 -54
- nautobot/project-static/docs/user-guide/platform-functionality/users/objectpermission.html +461 -17
- nautobot/project-static/docs/user-guide/platform-functionality/users/token.html +461 -17
- nautobot/project-static/docs/user-guide/platform-functionality/webhook.html +461 -17
- nautobot/project-static/img/jinja_logo.svg +97 -0
- nautobot/project-static/js/forms.js +6 -1
- nautobot/project-static/js/nav_menu.js +2 -1
- nautobot/tenancy/api/serializers.py +0 -2
- nautobot/tenancy/api/views.py +9 -13
- nautobot/tenancy/factory.py +1 -1
- nautobot/tenancy/navigation.py +0 -29
- nautobot/tenancy/templates/tenancy/tenant.html +4 -91
- nautobot/tenancy/tests/test_filters.py +29 -134
- nautobot/tenancy/views.py +35 -24
- nautobot/users/admin.py +2 -0
- nautobot/users/api/views.py +2 -2
- nautobot/users/forms.py +19 -0
- nautobot/users/templates/users/preferences.html +22 -0
- nautobot/users/tests/test_filters.py +1 -19
- nautobot/users/tests/test_views.py +57 -0
- nautobot/users/utils.py +8 -0
- nautobot/users/views.py +48 -11
- nautobot/virtualization/api/views.py +5 -24
- nautobot/virtualization/filters.py +1 -2
- nautobot/virtualization/models.py +1 -1
- nautobot/virtualization/navigation.py +0 -48
- nautobot/virtualization/tables.py +2 -2
- nautobot/virtualization/templates/virtualization/cluster_edit.html +1 -7
- nautobot/virtualization/templates/virtualization/clustertype.html +0 -39
- nautobot/virtualization/templates/virtualization/virtualmachine.html +1 -9
- nautobot/virtualization/templates/virtualization/virtualmachine_edit.html +2 -8
- nautobot/virtualization/tests/test_filters.py +57 -166
- nautobot/virtualization/views.py +18 -15
- nautobot/wireless/__init__.py +0 -0
- nautobot/wireless/api/__init__.py +0 -0
- nautobot/wireless/api/serializers.py +44 -0
- nautobot/wireless/api/urls.py +20 -0
- nautobot/wireless/api/views.py +34 -0
- nautobot/wireless/apps.py +8 -0
- nautobot/wireless/choices.py +345 -0
- nautobot/wireless/factory.py +138 -0
- nautobot/wireless/filters.py +167 -0
- nautobot/wireless/forms.py +283 -0
- nautobot/wireless/homepage.py +19 -0
- nautobot/wireless/migrations/0001_initial.py +223 -0
- nautobot/wireless/migrations/__init__.py +0 -0
- nautobot/wireless/models.py +207 -0
- nautobot/wireless/navigation.py +105 -0
- nautobot/wireless/tables.py +244 -0
- nautobot/wireless/templates/wireless/radioprofile_retrieve.html +81 -0
- nautobot/wireless/templates/wireless/supporteddatarate_retrieve.html +26 -0
- nautobot/wireless/templates/wireless/wirelessnetwork_create.html +88 -0
- nautobot/wireless/templates/wireless/wirelessnetwork_retrieve.html +56 -0
- nautobot/wireless/tests/__init__.py +0 -0
- nautobot/wireless/tests/integration/__init__.py +0 -0
- nautobot/wireless/tests/integration/test_radio_profile.py +42 -0
- nautobot/wireless/tests/test_api.py +247 -0
- nautobot/wireless/tests/test_filters.py +82 -0
- nautobot/wireless/tests/test_models.py +22 -0
- nautobot/wireless/tests/test_views.py +378 -0
- nautobot/wireless/urls.py +13 -0
- nautobot/wireless/views.py +119 -0
- {nautobot-2.3.16.dist-info → nautobot-2.4.0.dist-info}/METADATA +9 -12
- {nautobot-2.3.16.dist-info → nautobot-2.4.0.dist-info}/RECORD +720 -549
- nautobot/core/utils/navigation.py +0 -54
- {nautobot-2.3.16.dist-info → nautobot-2.4.0.dist-info}/LICENSE.txt +0 -0
- {nautobot-2.3.16.dist-info → nautobot-2.4.0.dist-info}/NOTICE +0 -0
- {nautobot-2.3.16.dist-info → nautobot-2.4.0.dist-info}/WHEEL +0 -0
- {nautobot-2.3.16.dist-info → nautobot-2.4.0.dist-info}/entry_points.txt +0 -0
|
@@ -2112,6 +2112,27 @@
|
|
|
2112
2112
|
|
|
2113
2113
|
|
|
2114
2114
|
|
|
2115
|
+
|
|
2116
|
+
|
|
2117
|
+
|
|
2118
|
+
|
|
2119
|
+
|
|
2120
|
+
|
|
2121
|
+
<li class="md-nav__item">
|
|
2122
|
+
<a href="../../../user-guide/feature-guides/wireless-networks-and-controllers.html" class="md-nav__link">
|
|
2123
|
+
|
|
2124
|
+
|
|
2125
|
+
<span class="md-ellipsis">
|
|
2126
|
+
Wireless Networks and Controllers
|
|
2127
|
+
</span>
|
|
2128
|
+
|
|
2129
|
+
|
|
2130
|
+
</a>
|
|
2131
|
+
</li>
|
|
2132
|
+
|
|
2133
|
+
|
|
2134
|
+
|
|
2135
|
+
|
|
2115
2136
|
</ul>
|
|
2116
2137
|
</nav>
|
|
2117
2138
|
|
|
@@ -3944,6 +3965,27 @@
|
|
|
3944
3965
|
|
|
3945
3966
|
|
|
3946
3967
|
|
|
3968
|
+
|
|
3969
|
+
|
|
3970
|
+
|
|
3971
|
+
|
|
3972
|
+
|
|
3973
|
+
|
|
3974
|
+
<li class="md-nav__item">
|
|
3975
|
+
<a href="../../../user-guide/core-data-model/dcim/virtualdevicecontext.html" class="md-nav__link">
|
|
3976
|
+
|
|
3977
|
+
|
|
3978
|
+
<span class="md-ellipsis">
|
|
3979
|
+
Virtual Device Context
|
|
3980
|
+
</span>
|
|
3981
|
+
|
|
3982
|
+
|
|
3983
|
+
</a>
|
|
3984
|
+
</li>
|
|
3985
|
+
|
|
3986
|
+
|
|
3987
|
+
|
|
3988
|
+
|
|
3947
3989
|
</ul>
|
|
3948
3990
|
</nav>
|
|
3949
3991
|
|
|
@@ -4556,6 +4598,123 @@
|
|
|
4556
4598
|
|
|
4557
4599
|
|
|
4558
4600
|
|
|
4601
|
+
|
|
4602
|
+
|
|
4603
|
+
|
|
4604
|
+
|
|
4605
|
+
|
|
4606
|
+
|
|
4607
|
+
|
|
4608
|
+
|
|
4609
|
+
|
|
4610
|
+
|
|
4611
|
+
|
|
4612
|
+
|
|
4613
|
+
|
|
4614
|
+
<li class="md-nav__item md-nav__item--nested">
|
|
4615
|
+
|
|
4616
|
+
|
|
4617
|
+
|
|
4618
|
+
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_3_9" >
|
|
4619
|
+
|
|
4620
|
+
|
|
4621
|
+
|
|
4622
|
+
<div class="md-nav__link md-nav__container">
|
|
4623
|
+
<a href="../../../user-guide/core-data-model/wireless/index.html" class="md-nav__link ">
|
|
4624
|
+
|
|
4625
|
+
|
|
4626
|
+
<span class="md-ellipsis">
|
|
4627
|
+
Wireless
|
|
4628
|
+
</span>
|
|
4629
|
+
|
|
4630
|
+
|
|
4631
|
+
</a>
|
|
4632
|
+
|
|
4633
|
+
|
|
4634
|
+
<label class="md-nav__link " for="__nav_2_3_9" id="__nav_2_3_9_label" tabindex="0">
|
|
4635
|
+
<span class="md-nav__icon md-icon"></span>
|
|
4636
|
+
</label>
|
|
4637
|
+
|
|
4638
|
+
</div>
|
|
4639
|
+
|
|
4640
|
+
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_3_9_label" aria-expanded="false">
|
|
4641
|
+
<label class="md-nav__title" for="__nav_2_3_9">
|
|
4642
|
+
<span class="md-nav__icon md-icon"></span>
|
|
4643
|
+
Wireless
|
|
4644
|
+
</label>
|
|
4645
|
+
<ul class="md-nav__list" data-md-scrollfix>
|
|
4646
|
+
|
|
4647
|
+
|
|
4648
|
+
|
|
4649
|
+
|
|
4650
|
+
|
|
4651
|
+
|
|
4652
|
+
|
|
4653
|
+
<li class="md-nav__item">
|
|
4654
|
+
<a href="../../../user-guide/core-data-model/wireless/supporteddatarate.html" class="md-nav__link">
|
|
4655
|
+
|
|
4656
|
+
|
|
4657
|
+
<span class="md-ellipsis">
|
|
4658
|
+
Supported Data Rate
|
|
4659
|
+
</span>
|
|
4660
|
+
|
|
4661
|
+
|
|
4662
|
+
</a>
|
|
4663
|
+
</li>
|
|
4664
|
+
|
|
4665
|
+
|
|
4666
|
+
|
|
4667
|
+
|
|
4668
|
+
|
|
4669
|
+
|
|
4670
|
+
|
|
4671
|
+
|
|
4672
|
+
|
|
4673
|
+
|
|
4674
|
+
<li class="md-nav__item">
|
|
4675
|
+
<a href="../../../user-guide/core-data-model/wireless/radioprofile.html" class="md-nav__link">
|
|
4676
|
+
|
|
4677
|
+
|
|
4678
|
+
<span class="md-ellipsis">
|
|
4679
|
+
Radio Profile
|
|
4680
|
+
</span>
|
|
4681
|
+
|
|
4682
|
+
|
|
4683
|
+
</a>
|
|
4684
|
+
</li>
|
|
4685
|
+
|
|
4686
|
+
|
|
4687
|
+
|
|
4688
|
+
|
|
4689
|
+
|
|
4690
|
+
|
|
4691
|
+
|
|
4692
|
+
|
|
4693
|
+
|
|
4694
|
+
|
|
4695
|
+
<li class="md-nav__item">
|
|
4696
|
+
<a href="../../../user-guide/core-data-model/wireless/wirelessnetwork.html" class="md-nav__link">
|
|
4697
|
+
|
|
4698
|
+
|
|
4699
|
+
<span class="md-ellipsis">
|
|
4700
|
+
Wireless Network
|
|
4701
|
+
</span>
|
|
4702
|
+
|
|
4703
|
+
|
|
4704
|
+
</a>
|
|
4705
|
+
</li>
|
|
4706
|
+
|
|
4707
|
+
|
|
4708
|
+
|
|
4709
|
+
|
|
4710
|
+
</ul>
|
|
4711
|
+
</nav>
|
|
4712
|
+
|
|
4713
|
+
</li>
|
|
4714
|
+
|
|
4715
|
+
|
|
4716
|
+
|
|
4717
|
+
|
|
4559
4718
|
</ul>
|
|
4560
4719
|
</nav>
|
|
4561
4720
|
|
|
@@ -4767,6 +4926,27 @@
|
|
|
4767
4926
|
|
|
4768
4927
|
|
|
4769
4928
|
|
|
4929
|
+
<li class="md-nav__item">
|
|
4930
|
+
<a href="../../../user-guide/platform-functionality/events.html" class="md-nav__link">
|
|
4931
|
+
|
|
4932
|
+
|
|
4933
|
+
<span class="md-ellipsis">
|
|
4934
|
+
Event Notifications
|
|
4935
|
+
</span>
|
|
4936
|
+
|
|
4937
|
+
|
|
4938
|
+
</a>
|
|
4939
|
+
</li>
|
|
4940
|
+
|
|
4941
|
+
|
|
4942
|
+
|
|
4943
|
+
|
|
4944
|
+
|
|
4945
|
+
|
|
4946
|
+
|
|
4947
|
+
|
|
4948
|
+
|
|
4949
|
+
|
|
4770
4950
|
<li class="md-nav__item">
|
|
4771
4951
|
<a href="../../../user-guide/platform-functionality/exporttemplate.html" class="md-nav__link">
|
|
4772
4952
|
|
|
@@ -4841,7 +5021,7 @@
|
|
|
4841
5021
|
|
|
4842
5022
|
|
|
4843
5023
|
|
|
4844
|
-
<input class="md-nav__toggle md-toggle " type="checkbox" id="
|
|
5024
|
+
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_4_10" >
|
|
4845
5025
|
|
|
4846
5026
|
|
|
4847
5027
|
|
|
@@ -4857,14 +5037,14 @@
|
|
|
4857
5037
|
</a>
|
|
4858
5038
|
|
|
4859
5039
|
|
|
4860
|
-
<label class="md-nav__link " for="
|
|
5040
|
+
<label class="md-nav__link " for="__nav_2_4_10" id="__nav_2_4_10_label" tabindex="0">
|
|
4861
5041
|
<span class="md-nav__icon md-icon"></span>
|
|
4862
5042
|
</label>
|
|
4863
5043
|
|
|
4864
5044
|
</div>
|
|
4865
5045
|
|
|
4866
|
-
<nav class="md-nav" data-md-level="3" aria-labelledby="
|
|
4867
|
-
<label class="md-nav__title" for="
|
|
5046
|
+
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_4_10_label" aria-expanded="false">
|
|
5047
|
+
<label class="md-nav__title" for="__nav_2_4_10">
|
|
4868
5048
|
<span class="md-nav__icon md-icon"></span>
|
|
4869
5049
|
GraphQL
|
|
4870
5050
|
</label>
|
|
@@ -4937,7 +5117,7 @@
|
|
|
4937
5117
|
|
|
4938
5118
|
|
|
4939
5119
|
|
|
4940
|
-
<input class="md-nav__toggle md-toggle " type="checkbox" id="
|
|
5120
|
+
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_4_12" >
|
|
4941
5121
|
|
|
4942
5122
|
|
|
4943
5123
|
|
|
@@ -4953,14 +5133,14 @@
|
|
|
4953
5133
|
</a>
|
|
4954
5134
|
|
|
4955
5135
|
|
|
4956
|
-
<label class="md-nav__link " for="
|
|
5136
|
+
<label class="md-nav__link " for="__nav_2_4_12" id="__nav_2_4_12_label" tabindex="0">
|
|
4957
5137
|
<span class="md-nav__icon md-icon"></span>
|
|
4958
5138
|
</label>
|
|
4959
5139
|
|
|
4960
5140
|
</div>
|
|
4961
5141
|
|
|
4962
|
-
<nav class="md-nav" data-md-level="3" aria-labelledby="
|
|
4963
|
-
<label class="md-nav__title" for="
|
|
5142
|
+
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_4_12_label" aria-expanded="false">
|
|
5143
|
+
<label class="md-nav__title" for="__nav_2_4_12">
|
|
4964
5144
|
<span class="md-nav__icon md-icon"></span>
|
|
4965
5145
|
Jobs
|
|
4966
5146
|
</label>
|
|
@@ -4972,6 +5152,27 @@
|
|
|
4972
5152
|
|
|
4973
5153
|
|
|
4974
5154
|
|
|
5155
|
+
<li class="md-nav__item">
|
|
5156
|
+
<a href="../../../user-guide/platform-functionality/jobs/kubernetes-job-support.html" class="md-nav__link">
|
|
5157
|
+
|
|
5158
|
+
|
|
5159
|
+
<span class="md-ellipsis">
|
|
5160
|
+
Kubernetes Job Support
|
|
5161
|
+
</span>
|
|
5162
|
+
|
|
5163
|
+
|
|
5164
|
+
</a>
|
|
5165
|
+
</li>
|
|
5166
|
+
|
|
5167
|
+
|
|
5168
|
+
|
|
5169
|
+
|
|
5170
|
+
|
|
5171
|
+
|
|
5172
|
+
|
|
5173
|
+
|
|
5174
|
+
|
|
5175
|
+
|
|
4975
5176
|
<li class="md-nav__item">
|
|
4976
5177
|
<a href="../../../user-guide/platform-functionality/jobs/jobbutton.html" class="md-nav__link">
|
|
4977
5178
|
|
|
@@ -5035,6 +5236,27 @@
|
|
|
5035
5236
|
|
|
5036
5237
|
|
|
5037
5238
|
|
|
5239
|
+
<li class="md-nav__item">
|
|
5240
|
+
<a href="../../../user-guide/platform-functionality/jobs/jobqueue.html" class="md-nav__link">
|
|
5241
|
+
|
|
5242
|
+
|
|
5243
|
+
<span class="md-ellipsis">
|
|
5244
|
+
Job Queues
|
|
5245
|
+
</span>
|
|
5246
|
+
|
|
5247
|
+
|
|
5248
|
+
</a>
|
|
5249
|
+
</li>
|
|
5250
|
+
|
|
5251
|
+
|
|
5252
|
+
|
|
5253
|
+
|
|
5254
|
+
|
|
5255
|
+
|
|
5256
|
+
|
|
5257
|
+
|
|
5258
|
+
|
|
5259
|
+
|
|
5038
5260
|
<li class="md-nav__item">
|
|
5039
5261
|
<a href="../../../user-guide/platform-functionality/jobs/job-scheduling-and-approvals.html" class="md-nav__link">
|
|
5040
5262
|
|
|
@@ -5148,6 +5370,27 @@
|
|
|
5148
5370
|
|
|
5149
5371
|
|
|
5150
5372
|
|
|
5373
|
+
<li class="md-nav__item">
|
|
5374
|
+
<a href="../../../user-guide/platform-functionality/rendering-jinja-templates.html" class="md-nav__link">
|
|
5375
|
+
|
|
5376
|
+
|
|
5377
|
+
<span class="md-ellipsis">
|
|
5378
|
+
Rendering Jinja Templates
|
|
5379
|
+
</span>
|
|
5380
|
+
|
|
5381
|
+
|
|
5382
|
+
</a>
|
|
5383
|
+
</li>
|
|
5384
|
+
|
|
5385
|
+
|
|
5386
|
+
|
|
5387
|
+
|
|
5388
|
+
|
|
5389
|
+
|
|
5390
|
+
|
|
5391
|
+
|
|
5392
|
+
|
|
5393
|
+
|
|
5151
5394
|
|
|
5152
5395
|
|
|
5153
5396
|
|
|
@@ -5159,7 +5402,7 @@
|
|
|
5159
5402
|
|
|
5160
5403
|
|
|
5161
5404
|
|
|
5162
|
-
<input class="md-nav__toggle md-toggle " type="checkbox" id="
|
|
5405
|
+
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_4_18" >
|
|
5163
5406
|
|
|
5164
5407
|
|
|
5165
5408
|
|
|
@@ -5175,14 +5418,14 @@
|
|
|
5175
5418
|
</a>
|
|
5176
5419
|
|
|
5177
5420
|
|
|
5178
|
-
<label class="md-nav__link " for="
|
|
5421
|
+
<label class="md-nav__link " for="__nav_2_4_18" id="__nav_2_4_18_label" tabindex="0">
|
|
5179
5422
|
<span class="md-nav__icon md-icon"></span>
|
|
5180
5423
|
</label>
|
|
5181
5424
|
|
|
5182
5425
|
</div>
|
|
5183
5426
|
|
|
5184
|
-
<nav class="md-nav" data-md-level="3" aria-labelledby="
|
|
5185
|
-
<label class="md-nav__title" for="
|
|
5427
|
+
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_4_18_label" aria-expanded="false">
|
|
5428
|
+
<label class="md-nav__title" for="__nav_2_4_18">
|
|
5186
5429
|
<span class="md-nav__icon md-icon"></span>
|
|
5187
5430
|
REST API
|
|
5188
5431
|
</label>
|
|
@@ -5402,10 +5645,10 @@
|
|
|
5402
5645
|
|
|
5403
5646
|
|
|
5404
5647
|
|
|
5405
|
-
<input class="md-nav__toggle md-toggle " type="checkbox" id="
|
|
5648
|
+
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_4_25" >
|
|
5406
5649
|
|
|
5407
5650
|
|
|
5408
|
-
<label class="md-nav__link" for="
|
|
5651
|
+
<label class="md-nav__link" for="__nav_2_4_25" id="__nav_2_4_25_label" tabindex="0">
|
|
5409
5652
|
|
|
5410
5653
|
|
|
5411
5654
|
<span class="md-ellipsis">
|
|
@@ -5416,8 +5659,8 @@
|
|
|
5416
5659
|
<span class="md-nav__icon md-icon"></span>
|
|
5417
5660
|
</label>
|
|
5418
5661
|
|
|
5419
|
-
<nav class="md-nav" data-md-level="3" aria-labelledby="
|
|
5420
|
-
<label class="md-nav__title" for="
|
|
5662
|
+
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_4_25_label" aria-expanded="false">
|
|
5663
|
+
<label class="md-nav__title" for="__nav_2_4_25">
|
|
5421
5664
|
<span class="md-nav__icon md-icon"></span>
|
|
5422
5665
|
Users
|
|
5423
5666
|
</label>
|
|
@@ -6831,6 +7074,27 @@
|
|
|
6831
7074
|
|
|
6832
7075
|
|
|
6833
7076
|
|
|
7077
|
+
<li class="md-nav__item">
|
|
7078
|
+
<a href="events.html" class="md-nav__link">
|
|
7079
|
+
|
|
7080
|
+
|
|
7081
|
+
<span class="md-ellipsis">
|
|
7082
|
+
nautobot.apps.events
|
|
7083
|
+
</span>
|
|
7084
|
+
|
|
7085
|
+
|
|
7086
|
+
</a>
|
|
7087
|
+
</li>
|
|
7088
|
+
|
|
7089
|
+
|
|
7090
|
+
|
|
7091
|
+
|
|
7092
|
+
|
|
7093
|
+
|
|
7094
|
+
|
|
7095
|
+
|
|
7096
|
+
|
|
7097
|
+
|
|
6834
7098
|
<li class="md-nav__item">
|
|
6835
7099
|
<a href="exceptions.html" class="md-nav__link">
|
|
6836
7100
|
|
|
@@ -7842,6 +8106,15 @@
|
|
|
7842
8106
|
</span>
|
|
7843
8107
|
</a>
|
|
7844
8108
|
|
|
8109
|
+
</li>
|
|
8110
|
+
|
|
8111
|
+
<li class="md-nav__item">
|
|
8112
|
+
<a href="#nautobot.apps.models.RelationshipModel.get_relationships_with_related_objects" class="md-nav__link">
|
|
8113
|
+
<span class="md-ellipsis">
|
|
8114
|
+
get_relationships_with_related_objects
|
|
8115
|
+
</span>
|
|
8116
|
+
</a>
|
|
8117
|
+
|
|
7845
8118
|
</li>
|
|
7846
8119
|
|
|
7847
8120
|
<li class="md-nav__item">
|
|
@@ -8688,14 +8961,6 @@
|
|
|
8688
8961
|
|
|
8689
8962
|
|
|
8690
8963
|
|
|
8691
|
-
</ul>
|
|
8692
|
-
</nav>
|
|
8693
|
-
|
|
8694
|
-
</li>
|
|
8695
|
-
|
|
8696
|
-
|
|
8697
|
-
|
|
8698
|
-
|
|
8699
8964
|
|
|
8700
8965
|
|
|
8701
8966
|
|
|
@@ -8713,12 +8978,137 @@
|
|
|
8713
8978
|
|
|
8714
8979
|
|
|
8715
8980
|
|
|
8716
|
-
<input class="md-nav__toggle md-toggle " type="checkbox" id="
|
|
8981
|
+
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_2_9_5" >
|
|
8717
8982
|
|
|
8718
8983
|
|
|
8719
|
-
|
|
8720
|
-
|
|
8721
|
-
|
|
8984
|
+
|
|
8985
|
+
<div class="md-nav__link md-nav__container">
|
|
8986
|
+
<a href="../../../development/apps/migration/ui-component-framework/index.html" class="md-nav__link ">
|
|
8987
|
+
|
|
8988
|
+
|
|
8989
|
+
<span class="md-ellipsis">
|
|
8990
|
+
UI Component Framework
|
|
8991
|
+
</span>
|
|
8992
|
+
|
|
8993
|
+
|
|
8994
|
+
</a>
|
|
8995
|
+
|
|
8996
|
+
|
|
8997
|
+
<label class="md-nav__link " for="__nav_3_2_9_5" id="__nav_3_2_9_5_label" tabindex="0">
|
|
8998
|
+
<span class="md-nav__icon md-icon"></span>
|
|
8999
|
+
</label>
|
|
9000
|
+
|
|
9001
|
+
</div>
|
|
9002
|
+
|
|
9003
|
+
<nav class="md-nav" data-md-level="4" aria-labelledby="__nav_3_2_9_5_label" aria-expanded="false">
|
|
9004
|
+
<label class="md-nav__title" for="__nav_3_2_9_5">
|
|
9005
|
+
<span class="md-nav__icon md-icon"></span>
|
|
9006
|
+
UI Component Framework
|
|
9007
|
+
</label>
|
|
9008
|
+
<ul class="md-nav__list" data-md-scrollfix>
|
|
9009
|
+
|
|
9010
|
+
|
|
9011
|
+
|
|
9012
|
+
|
|
9013
|
+
|
|
9014
|
+
|
|
9015
|
+
|
|
9016
|
+
<li class="md-nav__item">
|
|
9017
|
+
<a href="../../../development/apps/migration/ui-component-framework/migration-steps.html" class="md-nav__link">
|
|
9018
|
+
|
|
9019
|
+
|
|
9020
|
+
<span class="md-ellipsis">
|
|
9021
|
+
Migration steps
|
|
9022
|
+
</span>
|
|
9023
|
+
|
|
9024
|
+
|
|
9025
|
+
</a>
|
|
9026
|
+
</li>
|
|
9027
|
+
|
|
9028
|
+
|
|
9029
|
+
|
|
9030
|
+
|
|
9031
|
+
|
|
9032
|
+
|
|
9033
|
+
|
|
9034
|
+
|
|
9035
|
+
|
|
9036
|
+
|
|
9037
|
+
<li class="md-nav__item">
|
|
9038
|
+
<a href="../../../development/apps/migration/ui-component-framework/custom-content.html" class="md-nav__link">
|
|
9039
|
+
|
|
9040
|
+
|
|
9041
|
+
<span class="md-ellipsis">
|
|
9042
|
+
Custom content
|
|
9043
|
+
</span>
|
|
9044
|
+
|
|
9045
|
+
|
|
9046
|
+
</a>
|
|
9047
|
+
</li>
|
|
9048
|
+
|
|
9049
|
+
|
|
9050
|
+
|
|
9051
|
+
|
|
9052
|
+
|
|
9053
|
+
|
|
9054
|
+
|
|
9055
|
+
|
|
9056
|
+
|
|
9057
|
+
|
|
9058
|
+
<li class="md-nav__item">
|
|
9059
|
+
<a href="../../../development/apps/migration/ui-component-framework/best-practices.html" class="md-nav__link">
|
|
9060
|
+
|
|
9061
|
+
|
|
9062
|
+
<span class="md-ellipsis">
|
|
9063
|
+
Best practices
|
|
9064
|
+
</span>
|
|
9065
|
+
|
|
9066
|
+
|
|
9067
|
+
</a>
|
|
9068
|
+
</li>
|
|
9069
|
+
|
|
9070
|
+
|
|
9071
|
+
|
|
9072
|
+
|
|
9073
|
+
</ul>
|
|
9074
|
+
</nav>
|
|
9075
|
+
|
|
9076
|
+
</li>
|
|
9077
|
+
|
|
9078
|
+
|
|
9079
|
+
|
|
9080
|
+
|
|
9081
|
+
</ul>
|
|
9082
|
+
</nav>
|
|
9083
|
+
|
|
9084
|
+
</li>
|
|
9085
|
+
|
|
9086
|
+
|
|
9087
|
+
|
|
9088
|
+
|
|
9089
|
+
|
|
9090
|
+
|
|
9091
|
+
|
|
9092
|
+
|
|
9093
|
+
|
|
9094
|
+
|
|
9095
|
+
|
|
9096
|
+
|
|
9097
|
+
|
|
9098
|
+
|
|
9099
|
+
|
|
9100
|
+
|
|
9101
|
+
|
|
9102
|
+
<li class="md-nav__item md-nav__item--nested">
|
|
9103
|
+
|
|
9104
|
+
|
|
9105
|
+
|
|
9106
|
+
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_2_10" >
|
|
9107
|
+
|
|
9108
|
+
|
|
9109
|
+
<label class="md-nav__link" for="__nav_3_2_10" id="__nav_3_2_10_label" tabindex="0">
|
|
9110
|
+
|
|
9111
|
+
|
|
8722
9112
|
<span class="md-ellipsis">
|
|
8723
9113
|
Advanced
|
|
8724
9114
|
</span>
|
|
@@ -9033,6 +9423,27 @@
|
|
|
9033
9423
|
|
|
9034
9424
|
|
|
9035
9425
|
|
|
9426
|
+
<li class="md-nav__item">
|
|
9427
|
+
<a href="../../../development/core/minikube-dev-environment-for-k8s-jobs.html" class="md-nav__link">
|
|
9428
|
+
|
|
9429
|
+
|
|
9430
|
+
<span class="md-ellipsis">
|
|
9431
|
+
Minikube Dev Environment for K8s Jobs
|
|
9432
|
+
</span>
|
|
9433
|
+
|
|
9434
|
+
|
|
9435
|
+
</a>
|
|
9436
|
+
</li>
|
|
9437
|
+
|
|
9438
|
+
|
|
9439
|
+
|
|
9440
|
+
|
|
9441
|
+
|
|
9442
|
+
|
|
9443
|
+
|
|
9444
|
+
|
|
9445
|
+
|
|
9446
|
+
|
|
9036
9447
|
<li class="md-nav__item">
|
|
9037
9448
|
<a href="../../../development/core/model-checklist.html" class="md-nav__link">
|
|
9038
9449
|
|
|
@@ -9222,6 +9633,27 @@
|
|
|
9222
9633
|
|
|
9223
9634
|
|
|
9224
9635
|
|
|
9636
|
+
<li class="md-nav__item">
|
|
9637
|
+
<a href="../../../development/core/ui-component-framework.html" class="md-nav__link">
|
|
9638
|
+
|
|
9639
|
+
|
|
9640
|
+
<span class="md-ellipsis">
|
|
9641
|
+
UI Component Framework
|
|
9642
|
+
</span>
|
|
9643
|
+
|
|
9644
|
+
|
|
9645
|
+
</a>
|
|
9646
|
+
</li>
|
|
9647
|
+
|
|
9648
|
+
|
|
9649
|
+
|
|
9650
|
+
|
|
9651
|
+
|
|
9652
|
+
|
|
9653
|
+
|
|
9654
|
+
|
|
9655
|
+
|
|
9656
|
+
|
|
9225
9657
|
<li class="md-nav__item">
|
|
9226
9658
|
<a href="../../../development/core/release-checklist.html" class="md-nav__link">
|
|
9227
9659
|
|
|
@@ -9304,6 +9736,27 @@
|
|
|
9304
9736
|
|
|
9305
9737
|
|
|
9306
9738
|
|
|
9739
|
+
<li class="md-nav__item">
|
|
9740
|
+
<a href="../../../release-notes/version-2.4.html" class="md-nav__link">
|
|
9741
|
+
|
|
9742
|
+
|
|
9743
|
+
<span class="md-ellipsis">
|
|
9744
|
+
Version 2.4
|
|
9745
|
+
</span>
|
|
9746
|
+
|
|
9747
|
+
|
|
9748
|
+
</a>
|
|
9749
|
+
</li>
|
|
9750
|
+
|
|
9751
|
+
|
|
9752
|
+
|
|
9753
|
+
|
|
9754
|
+
|
|
9755
|
+
|
|
9756
|
+
|
|
9757
|
+
|
|
9758
|
+
|
|
9759
|
+
|
|
9307
9760
|
<li class="md-nav__item">
|
|
9308
9761
|
<a href="../../../release-notes/version-2.3.html" class="md-nav__link">
|
|
9309
9762
|
|
|
@@ -10730,6 +11183,15 @@
|
|
|
10730
11183
|
</span>
|
|
10731
11184
|
</a>
|
|
10732
11185
|
|
|
11186
|
+
</li>
|
|
11187
|
+
|
|
11188
|
+
<li class="md-nav__item">
|
|
11189
|
+
<a href="#nautobot.apps.models.RelationshipModel.get_relationships_with_related_objects" class="md-nav__link">
|
|
11190
|
+
<span class="md-ellipsis">
|
|
11191
|
+
get_relationships_with_related_objects
|
|
11192
|
+
</span>
|
|
11193
|
+
</a>
|
|
11194
|
+
|
|
10733
11195
|
</li>
|
|
10734
11196
|
|
|
10735
11197
|
<li class="md-nav__item">
|
|
@@ -11190,7 +11652,12 @@
|
|
|
11190
11652
|
|
|
11191
11653
|
<div class="doc doc-contents first">
|
|
11192
11654
|
|
|
11193
|
-
|
|
11655
|
+
<p>Data model classes and utilities for app implementation.</p>
|
|
11656
|
+
|
|
11657
|
+
|
|
11658
|
+
|
|
11659
|
+
|
|
11660
|
+
|
|
11194
11661
|
|
|
11195
11662
|
|
|
11196
11663
|
|
|
@@ -11216,10 +11683,10 @@
|
|
|
11216
11683
|
|
|
11217
11684
|
<div class="doc doc-contents ">
|
|
11218
11685
|
<p class="doc doc-class-bases">
|
|
11219
|
-
Bases: <code><
|
|
11686
|
+
Bases: <code><span title="django_extensions.db.fields.AutoSlugField">AutoSlugField</span></code></p>
|
|
11220
11687
|
|
|
11221
11688
|
|
|
11222
|
-
|
|
11689
|
+
<p>AutoSlugField</p>
|
|
11223
11690
|
<p>By default, sets editable=True, blank=True, max_length=100, overwrite_on_add=False, unique=True
|
|
11224
11691
|
Required arguments:
|
|
11225
11692
|
populate_from
|
|
@@ -11261,6 +11728,11 @@ class MyModel(models.Model):
|
|
|
11261
11728
|
|
|
11262
11729
|
|
|
11263
11730
|
|
|
11731
|
+
|
|
11732
|
+
|
|
11733
|
+
|
|
11734
|
+
|
|
11735
|
+
|
|
11264
11736
|
<div class="doc doc-children">
|
|
11265
11737
|
|
|
11266
11738
|
|
|
@@ -11282,7 +11754,7 @@ class MyModel(models.Model):
|
|
|
11282
11754
|
|
|
11283
11755
|
<div class="doc doc-contents ">
|
|
11284
11756
|
|
|
11285
|
-
|
|
11757
|
+
<p>Workaround for https://github.com/django-extensions/django-extensions/issues/1713.</p>
|
|
11286
11758
|
|
|
11287
11759
|
</div>
|
|
11288
11760
|
|
|
@@ -11309,15 +11781,20 @@ class MyModel(models.Model):
|
|
|
11309
11781
|
|
|
11310
11782
|
<div class="doc doc-contents ">
|
|
11311
11783
|
<p class="doc doc-class-bases">
|
|
11312
|
-
Bases: <code><
|
|
11784
|
+
Bases: <code><span title="django.db.models.Manager">Manager</span></code></p>
|
|
11313
11785
|
|
|
11314
11786
|
|
|
11315
|
-
|
|
11787
|
+
<p>Base manager class corresponding to BaseModel and RestrictedQuerySet.</p>
|
|
11316
11788
|
<p>Adds built-in natural key support, loosely based on <code>django-natural-keys</code>.</p>
|
|
11317
11789
|
|
|
11318
11790
|
|
|
11319
11791
|
|
|
11320
11792
|
|
|
11793
|
+
|
|
11794
|
+
|
|
11795
|
+
|
|
11796
|
+
|
|
11797
|
+
|
|
11321
11798
|
<div class="doc doc-children">
|
|
11322
11799
|
|
|
11323
11800
|
|
|
@@ -11339,7 +11816,7 @@ class MyModel(models.Model):
|
|
|
11339
11816
|
|
|
11340
11817
|
<div class="doc doc-contents ">
|
|
11341
11818
|
|
|
11342
|
-
|
|
11819
|
+
<p>Return the object corresponding to the provided natural key.</p>
|
|
11343
11820
|
<p>Generic implementation that depends on the model being a BaseModel subclass or otherwise implementing our
|
|
11344
11821
|
<code>natural_key_field_lookups</code> property API. Loosely based on implementation from <code>django-natural-keys</code>.</p>
|
|
11345
11822
|
|
|
@@ -11368,10 +11845,10 @@ class MyModel(models.Model):
|
|
|
11368
11845
|
|
|
11369
11846
|
<div class="doc doc-contents ">
|
|
11370
11847
|
<p class="doc doc-class-bases">
|
|
11371
|
-
Bases: <code><
|
|
11848
|
+
Bases: <code><span title="django.db.models.Model">Model</span></code></p>
|
|
11372
11849
|
|
|
11373
11850
|
|
|
11374
|
-
|
|
11851
|
+
<p>Base model class that all models should inherit from.</p>
|
|
11375
11852
|
<p>This abstract base provides globally common fields and functionality.</p>
|
|
11376
11853
|
<p>Here we define the primary key to be a UUID field and set its default to
|
|
11377
11854
|
automatically generate a random UUID value. Note however, this does not
|
|
@@ -11387,6 +11864,11 @@ can be used for the same purpose in most cases.</p>
|
|
|
11387
11864
|
|
|
11388
11865
|
|
|
11389
11866
|
|
|
11867
|
+
|
|
11868
|
+
|
|
11869
|
+
|
|
11870
|
+
|
|
11871
|
+
|
|
11390
11872
|
<div class="doc doc-children">
|
|
11391
11873
|
|
|
11392
11874
|
|
|
@@ -11400,7 +11882,7 @@ can be used for the same purpose in most cases.</p>
|
|
|
11400
11882
|
|
|
11401
11883
|
|
|
11402
11884
|
<h3 id="nautobot.apps.models.BaseModel.composite_key" class="doc doc-heading">
|
|
11403
|
-
<code class="highlight language-python"><span class="n">composite_key</span
|
|
11885
|
+
<code class="highlight language-python"><span class="n">composite_key</span></code>
|
|
11404
11886
|
|
|
11405
11887
|
<span class="doc doc-labels">
|
|
11406
11888
|
<small class="doc doc-label doc-label-property"><code>property</code></small>
|
|
@@ -11411,7 +11893,7 @@ can be used for the same purpose in most cases.</p>
|
|
|
11411
11893
|
|
|
11412
11894
|
<div class="doc doc-contents ">
|
|
11413
11895
|
|
|
11414
|
-
|
|
11896
|
+
<p>Automatic "slug" string derived from this model's natural key, suitable for use in URLs etc.</p>
|
|
11415
11897
|
<p>A less naïve implementation than django-natural-keys provides by default, based around URL percent-encoding.</p>
|
|
11416
11898
|
</div>
|
|
11417
11899
|
|
|
@@ -11422,7 +11904,7 @@ can be used for the same purpose in most cases.</p>
|
|
|
11422
11904
|
|
|
11423
11905
|
|
|
11424
11906
|
<h3 id="nautobot.apps.models.BaseModel.natural_slug" class="doc doc-heading">
|
|
11425
|
-
<code class="highlight language-python"><span class="n">natural_slug</span
|
|
11907
|
+
<code class="highlight language-python"><span class="n">natural_slug</span></code>
|
|
11426
11908
|
|
|
11427
11909
|
<span class="doc doc-labels">
|
|
11428
11910
|
<small class="doc doc-label doc-label-property"><code>property</code></small>
|
|
@@ -11433,7 +11915,7 @@ can be used for the same purpose in most cases.</p>
|
|
|
11433
11915
|
|
|
11434
11916
|
<div class="doc doc-contents ">
|
|
11435
11917
|
|
|
11436
|
-
|
|
11918
|
+
<p>Automatic "slug" string derived from this model's natural key. This differs from composite
|
|
11437
11919
|
key in that it must be human-readable and comply with a very limited character set, and is therefore lossy.
|
|
11438
11920
|
This value is not guaranteed to be
|
|
11439
11921
|
unique although a best effort is made by appending a fragment of the primary key to the
|
|
@@ -11458,7 +11940,7 @@ natural slug value.</p>
|
|
|
11458
11940
|
|
|
11459
11941
|
<div class="doc doc-contents ">
|
|
11460
11942
|
|
|
11461
|
-
|
|
11943
|
+
<p>True if the record exists in the database, False if it does not.</p>
|
|
11462
11944
|
</div>
|
|
11463
11945
|
|
|
11464
11946
|
</div>
|
|
@@ -11480,7 +11962,7 @@ natural slug value.</p>
|
|
|
11480
11962
|
|
|
11481
11963
|
<div class="doc doc-contents ">
|
|
11482
11964
|
|
|
11483
|
-
|
|
11965
|
+
<p>Override this method for models with Python <code>@property</code> as part of their <code>natural_key_field_names</code>.</p>
|
|
11484
11966
|
<p>Since CSV export for <code>natural_key_field_names</code> relies on database fields, you can override this method
|
|
11485
11967
|
to provide custom handling for models with property-based natural keys.</p>
|
|
11486
11968
|
|
|
@@ -11499,7 +11981,7 @@ to provide custom handling for models with property-based natural keys.</p>
|
|
|
11499
11981
|
|
|
11500
11982
|
<div class="doc doc-contents ">
|
|
11501
11983
|
|
|
11502
|
-
|
|
11984
|
+
<p>Return the canonical URL for this object in either the UI or the REST API.</p>
|
|
11503
11985
|
|
|
11504
11986
|
</div>
|
|
11505
11987
|
|
|
@@ -11516,7 +11998,7 @@ to provide custom handling for models with property-based natural keys.</p>
|
|
|
11516
11998
|
|
|
11517
11999
|
<div class="doc doc-contents ">
|
|
11518
12000
|
|
|
11519
|
-
|
|
12001
|
+
<p>Smarter default implementation of natural key construction.</p>
|
|
11520
12002
|
<ol>
|
|
11521
12003
|
<li>Handles nullable foreign keys (https://github.com/wq/django-natural-keys/issues/18)</li>
|
|
11522
12004
|
<li>Handles variadic natural-keys (e.g. Location model - [name, parent__name, parent__parent__name, ...].)</li>
|
|
@@ -11541,7 +12023,7 @@ to provide custom handling for models with property-based natural keys.</p>
|
|
|
11541
12023
|
|
|
11542
12024
|
<div class="doc doc-contents ">
|
|
11543
12025
|
|
|
11544
|
-
|
|
12026
|
+
<p>Helper function to map a list of natural key field values to actual kwargs suitable for lookup and filtering.</p>
|
|
11545
12027
|
<p>Based on <code>django-natural-keys</code> <code>NaturalKeyQuerySet.natural_key_kwargs()</code> method.</p>
|
|
11546
12028
|
|
|
11547
12029
|
</div>
|
|
@@ -11559,7 +12041,7 @@ to provide custom handling for models with property-based natural keys.</p>
|
|
|
11559
12041
|
|
|
11560
12042
|
<div class="doc doc-contents ">
|
|
11561
12043
|
|
|
11562
|
-
|
|
12044
|
+
<p>List of lookups (possibly including nested lookups for related models) that make up this model's natural key.</p>
|
|
11563
12045
|
<p>BaseModel provides a "smart" implementation that tries to determine this automatically,
|
|
11564
12046
|
but you can also explicitly set <code>natural_key_field_names</code> on a given model subclass if desired.</p>
|
|
11565
12047
|
<p>This property is based on a consolidation of <code>django-natural-keys</code> <code>ForeignKeyModel.get_natural_key_info()</code>,
|
|
@@ -11582,7 +12064,7 @@ but instead explicitly discounts the <code>id</code> field (only) as a candidate
|
|
|
11582
12064
|
|
|
11583
12065
|
<div class="doc doc-contents ">
|
|
11584
12066
|
|
|
11585
|
-
|
|
12067
|
+
<p>Perform model validation during instance save.</p>
|
|
11586
12068
|
<p>This is a convenience method that first calls <code>self.full_clean()</code> and then <code>self.save()</code>
|
|
11587
12069
|
which in effect enforces model validation prior to saving the instance, without having
|
|
11588
12070
|
to manually make these calls seperately. This is a slight departure from Django norms,
|
|
@@ -11615,15 +12097,20 @@ command.</p>
|
|
|
11615
12097
|
|
|
11616
12098
|
<div class="doc doc-contents ">
|
|
11617
12099
|
<p class="doc doc-class-bases">
|
|
11618
|
-
Bases: <code><
|
|
12100
|
+
Bases: <code><span title="django.db.models.Model">Model</span></code></p>
|
|
11619
12101
|
|
|
11620
12102
|
|
|
11621
|
-
|
|
12103
|
+
<p>An abstract model which adds fields to store the creation and last-updated times for an object. Both fields can be
|
|
11622
12104
|
null to facilitate adding these fields to existing instances via a database migration.</p>
|
|
11623
12105
|
|
|
11624
12106
|
|
|
11625
12107
|
|
|
11626
12108
|
|
|
12109
|
+
|
|
12110
|
+
|
|
12111
|
+
|
|
12112
|
+
|
|
12113
|
+
|
|
11627
12114
|
<div class="doc doc-children">
|
|
11628
12115
|
|
|
11629
12116
|
|
|
@@ -11645,7 +12132,7 @@ null to facilitate adding these fields to existing instances via a database migr
|
|
|
11645
12132
|
|
|
11646
12133
|
<div class="doc doc-contents ">
|
|
11647
12134
|
|
|
11648
|
-
|
|
12135
|
+
<p>Return the changelog URL for this object.</p>
|
|
11649
12136
|
|
|
11650
12137
|
</div>
|
|
11651
12138
|
|
|
@@ -11662,7 +12149,7 @@ null to facilitate adding these fields to existing instances via a database migr
|
|
|
11662
12149
|
|
|
11663
12150
|
<div class="doc doc-contents ">
|
|
11664
12151
|
|
|
11665
|
-
|
|
12152
|
+
<p>Return a new ObjectChange representing a change made to this object, or None if the object shouldn't be logged.</p>
|
|
11666
12153
|
<p>This will typically be called automatically by ChangeLoggingMiddleware.</p>
|
|
11667
12154
|
|
|
11668
12155
|
</div>
|
|
@@ -11690,10 +12177,15 @@ null to facilitate adding these fields to existing instances via a database migr
|
|
|
11690
12177
|
|
|
11691
12178
|
<div class="doc doc-contents ">
|
|
11692
12179
|
<p class="doc doc-class-bases">
|
|
11693
|
-
Bases: <code><
|
|
12180
|
+
Bases: <code><span title="django.db.models.Func">Func</span></code></p>
|
|
12181
|
+
|
|
12182
|
+
|
|
12183
|
+
<p>Disregard localization by collating a field as a plain character string. Helpful for ensuring predictable ordering.</p>
|
|
12184
|
+
|
|
12185
|
+
|
|
12186
|
+
|
|
11694
12187
|
|
|
11695
12188
|
|
|
11696
|
-
<p>Disregard localization by collating a field as a plain character string. Helpful for ensuring predictable ordering.</p>
|
|
11697
12189
|
|
|
11698
12190
|
|
|
11699
12191
|
|
|
@@ -11730,7 +12222,7 @@ null to facilitate adding these fields to existing instances via a database migr
|
|
|
11730
12222
|
<div class="doc doc-contents ">
|
|
11731
12223
|
|
|
11732
12224
|
|
|
11733
|
-
|
|
12225
|
+
<p>Mixin to extend a base queryset class with support for filtering by <code>composite_key=...</code> as a virtual parameter.</p>
|
|
11734
12226
|
<p>Example:</p>
|
|
11735
12227
|
<div class="highlight"><pre><span></span><code>>>> Location.objects.last().composite_key
|
|
11736
12228
|
'Durham;AMER'
|
|
@@ -11768,6 +12260,11 @@ ValueError: Conflicting values for key "name": ('Durham', '
|
|
|
11768
12260
|
|
|
11769
12261
|
|
|
11770
12262
|
|
|
12263
|
+
|
|
12264
|
+
|
|
12265
|
+
|
|
12266
|
+
|
|
12267
|
+
|
|
11771
12268
|
<div class="doc doc-children">
|
|
11772
12269
|
|
|
11773
12270
|
|
|
@@ -11789,7 +12286,7 @@ ValueError: Conflicting values for key "name": ('Durham', '
|
|
|
11789
12286
|
|
|
11790
12287
|
<div class="doc doc-contents ">
|
|
11791
12288
|
|
|
11792
|
-
|
|
12289
|
+
<p>Explicitly handle <code>exclude(composite_key="...")</code> by decomposing the composite-key into natural key parameters.</p>
|
|
11793
12290
|
<p>Counterpart to BaseModel.composite_key property.</p>
|
|
11794
12291
|
|
|
11795
12292
|
</div>
|
|
@@ -11807,7 +12304,7 @@ ValueError: Conflicting values for key "name": ('Durham', '
|
|
|
11807
12304
|
|
|
11808
12305
|
<div class="doc doc-contents ">
|
|
11809
12306
|
|
|
11810
|
-
|
|
12307
|
+
<p>Explicitly handle <code>filter(composite_key="...")</code> by decomposing the composite-key into natural key parameters.</p>
|
|
11811
12308
|
<p>Counterpart to BaseModel.composite_key property.</p>
|
|
11812
12309
|
|
|
11813
12310
|
</div>
|
|
@@ -11825,7 +12322,7 @@ ValueError: Conflicting values for key "name": ('Durham', '
|
|
|
11825
12322
|
|
|
11826
12323
|
<div class="doc doc-contents ">
|
|
11827
12324
|
|
|
11828
|
-
|
|
12325
|
+
<p>Helper method abstracting a common need from filter() and exclude().</p>
|
|
11829
12326
|
<p>Subclasses may need to call this directly if they also have special processing of other filter/exclude params.</p>
|
|
11830
12327
|
|
|
11831
12328
|
</div>
|
|
@@ -11853,15 +12350,20 @@ ValueError: Conflicting values for key "name": ('Durham', '
|
|
|
11853
12350
|
|
|
11854
12351
|
<div class="doc doc-contents ">
|
|
11855
12352
|
<p class="doc doc-class-bases">
|
|
11856
|
-
Bases: <code><
|
|
12353
|
+
Bases: <code><span title="django.db.models.Model">Model</span></code>, <code><a class="autorefs autorefs-internal" title="nautobot.extras.models.models.ConfigContextSchemaValidationMixin" href="#nautobot.apps.models.ConfigContextSchemaValidationMixin">ConfigContextSchemaValidationMixin</a></code></p>
|
|
11857
12354
|
|
|
11858
12355
|
|
|
11859
|
-
|
|
12356
|
+
<p>A model which includes local configuration context data. This local data will override any inherited data from
|
|
11860
12357
|
ConfigContexts.</p>
|
|
11861
12358
|
|
|
11862
12359
|
|
|
11863
12360
|
|
|
11864
12361
|
|
|
12362
|
+
|
|
12363
|
+
|
|
12364
|
+
|
|
12365
|
+
|
|
12366
|
+
|
|
11865
12367
|
<div class="doc doc-children">
|
|
11866
12368
|
|
|
11867
12369
|
|
|
@@ -11883,7 +12385,7 @@ ConfigContexts.</p>
|
|
|
11883
12385
|
|
|
11884
12386
|
<div class="doc doc-contents ">
|
|
11885
12387
|
|
|
11886
|
-
|
|
12388
|
+
<p>Return the rendered configuration context for a device or VM.</p>
|
|
11887
12389
|
|
|
11888
12390
|
</div>
|
|
11889
12391
|
|
|
@@ -11911,7 +12413,12 @@ ConfigContexts.</p>
|
|
|
11911
12413
|
<div class="doc doc-contents ">
|
|
11912
12414
|
|
|
11913
12415
|
|
|
11914
|
-
|
|
12416
|
+
<p>Mixin that provides validation of config context data against a json schema.</p>
|
|
12417
|
+
|
|
12418
|
+
|
|
12419
|
+
|
|
12420
|
+
|
|
12421
|
+
|
|
11915
12422
|
|
|
11916
12423
|
|
|
11917
12424
|
|
|
@@ -11947,10 +12454,15 @@ ConfigContexts.</p>
|
|
|
11947
12454
|
|
|
11948
12455
|
<div class="doc doc-contents ">
|
|
11949
12456
|
<p class="doc doc-class-bases">
|
|
11950
|
-
Bases: <code><
|
|
12457
|
+
Bases: <code><span title="django.db.models.Model">Model</span></code></p>
|
|
12458
|
+
|
|
12459
|
+
|
|
12460
|
+
<p>Abstract mixin for enabling Contact/Team association to a given model class.</p>
|
|
12461
|
+
|
|
12462
|
+
|
|
12463
|
+
|
|
11951
12464
|
|
|
11952
12465
|
|
|
11953
|
-
<p>Abstract mixin for enabling Contact/Team association to a given model class.</p>
|
|
11954
12466
|
|
|
11955
12467
|
|
|
11956
12468
|
|
|
@@ -11986,7 +12498,12 @@ ConfigContexts.</p>
|
|
|
11986
12498
|
|
|
11987
12499
|
<div class="doc doc-contents ">
|
|
11988
12500
|
<p class="doc doc-class-bases">
|
|
11989
|
-
Bases: <code><
|
|
12501
|
+
Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.models.querysets.RestrictedQuerySet" href="#nautobot.apps.models.RestrictedQuerySet">RestrictedQuerySet</a></code></p>
|
|
12502
|
+
|
|
12503
|
+
|
|
12504
|
+
|
|
12505
|
+
|
|
12506
|
+
|
|
11990
12507
|
|
|
11991
12508
|
|
|
11992
12509
|
|
|
@@ -12013,7 +12530,7 @@ ConfigContexts.</p>
|
|
|
12013
12530
|
|
|
12014
12531
|
<div class="doc doc-contents ">
|
|
12015
12532
|
|
|
12016
|
-
|
|
12533
|
+
<p>Return all <code>self.model</code> instances assigned to the given model.</p>
|
|
12017
12534
|
|
|
12018
12535
|
</div>
|
|
12019
12536
|
|
|
@@ -12030,7 +12547,7 @@ ConfigContexts.</p>
|
|
|
12030
12547
|
|
|
12031
12548
|
<div class="doc doc-contents ">
|
|
12032
12549
|
|
|
12033
|
-
|
|
12550
|
+
<p>Return all <code>self.model</code> instances assigned to the given <code>_models</code>.</p>
|
|
12034
12551
|
|
|
12035
12552
|
</div>
|
|
12036
12553
|
|
|
@@ -12057,10 +12574,15 @@ ConfigContexts.</p>
|
|
|
12057
12574
|
|
|
12058
12575
|
<div class="doc doc-contents ">
|
|
12059
12576
|
<p class="doc doc-class-bases">
|
|
12060
|
-
Bases: <code><
|
|
12577
|
+
Bases: <code><span title="django.db.models.Model">Model</span></code></p>
|
|
12578
|
+
|
|
12579
|
+
|
|
12580
|
+
<p>Abstract class for any model which may have custom fields associated with it.</p>
|
|
12581
|
+
|
|
12582
|
+
|
|
12583
|
+
|
|
12061
12584
|
|
|
12062
12585
|
|
|
12063
|
-
<p>Abstract class for any model which may have custom fields associated with it.</p>
|
|
12064
12586
|
|
|
12065
12587
|
|
|
12066
12588
|
|
|
@@ -12089,7 +12611,7 @@ ConfigContexts.</p>
|
|
|
12089
12611
|
|
|
12090
12612
|
<div class="doc doc-contents ">
|
|
12091
12613
|
|
|
12092
|
-
|
|
12614
|
+
<p>Convenience wrapper for custom field data.</p>
|
|
12093
12615
|
</div>
|
|
12094
12616
|
|
|
12095
12617
|
</div>
|
|
@@ -12110,7 +12632,7 @@ ConfigContexts.</p>
|
|
|
12110
12632
|
|
|
12111
12633
|
<div class="doc doc-contents ">
|
|
12112
12634
|
|
|
12113
|
-
|
|
12635
|
+
<p>Legacy interface to raw custom field data</p>
|
|
12114
12636
|
<p>TODO(John): remove this entirely when the cf property is enhanced</p>
|
|
12115
12637
|
</div>
|
|
12116
12638
|
|
|
@@ -12129,7 +12651,7 @@ ConfigContexts.</p>
|
|
|
12129
12651
|
|
|
12130
12652
|
<div class="doc doc-contents ">
|
|
12131
12653
|
|
|
12132
|
-
|
|
12654
|
+
<p>Get a computed field for this model, lookup via key.
|
|
12133
12655
|
Returns the template of this field if render is False, otherwise returns the rendered value.</p>
|
|
12134
12656
|
|
|
12135
12657
|
</div>
|
|
@@ -12147,7 +12669,7 @@ Returns the template of this field if render is False, otherwise returns the ren
|
|
|
12147
12669
|
|
|
12148
12670
|
<div class="doc doc-contents ">
|
|
12149
12671
|
|
|
12150
|
-
|
|
12672
|
+
<p>Return a dictionary of all computed fields and their rendered values for this model.
|
|
12151
12673
|
Keys are the <code>key</code> value of each field. If label_as_key is True, <code>label</code> values of each field are used as keys.</p>
|
|
12152
12674
|
|
|
12153
12675
|
</div>
|
|
@@ -12165,7 +12687,7 @@ Keys are the <code>key</code> value of each field. If label_as_key is True, <cod
|
|
|
12165
12687
|
|
|
12166
12688
|
<div class="doc doc-contents ">
|
|
12167
12689
|
|
|
12168
|
-
|
|
12690
|
+
<p>Return a dictonary of computed fields grouped by the same grouping in the form
|
|
12169
12691
|
{
|
|
12170
12692
|
<grouping_1>: [(cf1, <value for cf1>), (cf2, <value for cf2>), ...],
|
|
12171
12693
|
...
|
|
@@ -12188,7 +12710,7 @@ Keys are the <code>key</code> value of each field. If label_as_key is True, <cod
|
|
|
12188
12710
|
|
|
12189
12711
|
<div class="doc doc-contents ">
|
|
12190
12712
|
|
|
12191
|
-
|
|
12713
|
+
<p>This method exists to help call get_computed_field_groupings() in templates where a function argument (advanced_ui) cannot be specified.
|
|
12192
12714
|
Return a dictonary of computed fields grouped by the same grouping in the form
|
|
12193
12715
|
{
|
|
12194
12716
|
<grouping_1>: [(cf1, <value for cf1>), (cf2, <value for cf2>), ...],
|
|
@@ -12213,7 +12735,7 @@ which have advanced_ui set to True</p>
|
|
|
12213
12735
|
|
|
12214
12736
|
<div class="doc doc-contents ">
|
|
12215
12737
|
|
|
12216
|
-
|
|
12738
|
+
<p>This method exists to help call get_computed_field_groupings() in templates where a function argument (advanced_ui) cannot be specified.
|
|
12217
12739
|
Return a dictonary of computed fields grouped by the same grouping in the form
|
|
12218
12740
|
{
|
|
12219
12741
|
<grouping_1>: [(cf1, <value for cf1>), (cf2, <value for cf2>), ...],
|
|
@@ -12238,7 +12760,7 @@ which have advanced_ui set to False</p>
|
|
|
12238
12760
|
|
|
12239
12761
|
<div class="doc doc-contents ">
|
|
12240
12762
|
|
|
12241
|
-
|
|
12763
|
+
<p>Return a dictonary of custom fields grouped by the same grouping in the form
|
|
12242
12764
|
{
|
|
12243
12765
|
<grouping_1>: [(cf1, <value for cf1>), (cf2, <value for cf2>), ...],
|
|
12244
12766
|
...
|
|
@@ -12261,7 +12783,7 @@ which have advanced_ui set to False</p>
|
|
|
12261
12783
|
|
|
12262
12784
|
<div class="doc doc-contents ">
|
|
12263
12785
|
|
|
12264
|
-
|
|
12786
|
+
<p>This method exists to help call get_custom_field_groupings() in templates where a function argument (advanced_ui) cannot be specified.
|
|
12265
12787
|
Return a dictonary of custom fields grouped by the same grouping in the form
|
|
12266
12788
|
{
|
|
12267
12789
|
<grouping_1>: [(cf1, <value for cf1>), (cf2, <value for cf2>), ...],
|
|
@@ -12286,7 +12808,7 @@ which have advanced_ui set to True</p>
|
|
|
12286
12808
|
|
|
12287
12809
|
<div class="doc doc-contents ">
|
|
12288
12810
|
|
|
12289
|
-
|
|
12811
|
+
<p>This method exists to help call get_custom_field_groupings() in templates where a function argument (advanced_ui) cannot be specified.
|
|
12290
12812
|
Return a dictonary of custom fields grouped by the same grouping in the form
|
|
12291
12813
|
{
|
|
12292
12814
|
<grouping_1>: [(cf1, <value for cf1>), (cf2, <value for cf2>), ...],
|
|
@@ -12311,7 +12833,7 @@ which have advanced_ui set to False</p>
|
|
|
12311
12833
|
|
|
12312
12834
|
<div class="doc doc-contents ">
|
|
12313
12835
|
|
|
12314
|
-
|
|
12836
|
+
<p>Return a dictionary of custom fields for a single object in the form {<field>: value}.</p>
|
|
12315
12837
|
|
|
12316
12838
|
</div>
|
|
12317
12839
|
|
|
@@ -12328,7 +12850,7 @@ which have advanced_ui set to False</p>
|
|
|
12328
12850
|
|
|
12329
12851
|
<div class="doc doc-contents ">
|
|
12330
12852
|
|
|
12331
|
-
|
|
12853
|
+
<p>This method exists to help call get_custom_fields() in templates where a function argument (advanced_ui) cannot be specified.
|
|
12332
12854
|
Return a dictionary of custom fields for a single object in the form {<field>: value}
|
|
12333
12855
|
which have advanced_ui set to True</p>
|
|
12334
12856
|
|
|
@@ -12347,7 +12869,7 @@ which have advanced_ui set to True</p>
|
|
|
12347
12869
|
|
|
12348
12870
|
<div class="doc doc-contents ">
|
|
12349
12871
|
|
|
12350
|
-
|
|
12872
|
+
<p>This method exists to help call get_custom_fields() in templates where a function argument (advanced_ui) cannot be specified.
|
|
12351
12873
|
Return a dictionary of custom fields for a single object in the form {<field>: value}
|
|
12352
12874
|
which have advanced_ui set to False</p>
|
|
12353
12875
|
|
|
@@ -12366,7 +12888,7 @@ which have advanced_ui set to False</p>
|
|
|
12366
12888
|
|
|
12367
12889
|
<div class="doc doc-contents ">
|
|
12368
12890
|
|
|
12369
|
-
|
|
12891
|
+
<p>Return a boolean indicating whether or not this content type has computed fields associated with it.
|
|
12370
12892
|
This can also check whether the advanced_ui attribute is True or False for UI display purposes.</p>
|
|
12371
12893
|
|
|
12372
12894
|
</div>
|
|
@@ -12395,7 +12917,7 @@ This can also check whether the advanced_ui attribute is True or False for UI di
|
|
|
12395
12917
|
<div class="doc doc-contents ">
|
|
12396
12918
|
|
|
12397
12919
|
|
|
12398
|
-
|
|
12920
|
+
<p>This class is used to register plugin custom model validators which act on specified models. It contains the clean
|
|
12399
12921
|
method which is overridden by plugin authors to execute custom validation logic. Plugin authors must raise
|
|
12400
12922
|
ValidationError within this method to trigger validation error messages which are propagated to the user.
|
|
12401
12923
|
A convenience method <code>validation_error(<message>)</code> may be used for this purpose.</p>
|
|
@@ -12405,6 +12927,11 @@ should be set as a string in the form <code><app_label>.<model_name>
|
|
|
12405
12927
|
|
|
12406
12928
|
|
|
12407
12929
|
|
|
12930
|
+
|
|
12931
|
+
|
|
12932
|
+
|
|
12933
|
+
|
|
12934
|
+
|
|
12408
12935
|
<div class="doc doc-children">
|
|
12409
12936
|
|
|
12410
12937
|
|
|
@@ -12426,7 +12953,7 @@ should be set as a string in the form <code><app_label>.<model_name>
|
|
|
12426
12953
|
|
|
12427
12954
|
<div class="doc doc-contents ">
|
|
12428
12955
|
|
|
12429
|
-
|
|
12956
|
+
<p>Implement custom model validation in the standard Django clean method pattern. The model instance is accessed
|
|
12430
12957
|
with the <code>object</code> key within <code>self.context</code>, e.g. <code>self.context['object']</code>. ValidationError must be raised to
|
|
12431
12958
|
prevent saving model instance changes, and propagate messages to the user. For convenience,
|
|
12432
12959
|
<code>self.validation_error(<message>)</code> may be called to raise a ValidationError.</p>
|
|
@@ -12446,7 +12973,7 @@ prevent saving model instance changes, and propagate messages to the user. For c
|
|
|
12446
12973
|
|
|
12447
12974
|
<div class="doc doc-contents ">
|
|
12448
12975
|
|
|
12449
|
-
|
|
12976
|
+
<p>Convenience method for raising <code>django.core.exceptions.ValidationError</code> which is required in order to
|
|
12450
12977
|
trigger validation error messages which are propagated to the user.</p>
|
|
12451
12978
|
|
|
12452
12979
|
</div>
|
|
@@ -12475,7 +13002,7 @@ trigger validation error messages which are propagated to the user.</p>
|
|
|
12475
13002
|
<div class="doc doc-contents ">
|
|
12476
13003
|
|
|
12477
13004
|
|
|
12478
|
-
|
|
13005
|
+
<p>DEPRECATED - use DynamicGroupsModelMixin instead if you need to mark a model as supporting Dynamic Groups.</p>
|
|
12479
13006
|
<p>This is necessary because DynamicGroupMixin was incorrectly not implemented as a subclass of models.Model,
|
|
12480
13007
|
and so it cannot properly implement Model behaviors like the <code>static_group_association_set</code> ReverseRelation.
|
|
12481
13008
|
However, adding this inheritance to DynamicGroupMixin itself would negatively impact existing migrations.
|
|
@@ -12489,6 +13016,11 @@ to the new DynamicGroupsModelMixin in its place.</p>
|
|
|
12489
13016
|
|
|
12490
13017
|
|
|
12491
13018
|
|
|
13019
|
+
|
|
13020
|
+
|
|
13021
|
+
|
|
13022
|
+
|
|
13023
|
+
|
|
12492
13024
|
<div class="doc doc-children">
|
|
12493
13025
|
|
|
12494
13026
|
|
|
@@ -12513,7 +13045,7 @@ to the new DynamicGroupsModelMixin in its place.</p>
|
|
|
12513
13045
|
|
|
12514
13046
|
<div class="doc doc-contents ">
|
|
12515
13047
|
|
|
12516
|
-
|
|
13048
|
+
<p>Return a queryset of (cached) <code>DynamicGroup</code> objects this instance is a member of.</p>
|
|
12517
13049
|
</div>
|
|
12518
13050
|
|
|
12519
13051
|
</div>
|
|
@@ -12534,7 +13066,7 @@ to the new DynamicGroupsModelMixin in its place.</p>
|
|
|
12534
13066
|
|
|
12535
13067
|
<div class="doc doc-contents ">
|
|
12536
13068
|
|
|
12537
|
-
|
|
13069
|
+
<p>Deprecated - use <code>self.dynamic_groups</code> instead.</p>
|
|
12538
13070
|
</div>
|
|
12539
13071
|
|
|
12540
13072
|
</div>
|
|
@@ -12555,7 +13087,7 @@ to the new DynamicGroupsModelMixin in its place.</p>
|
|
|
12555
13087
|
|
|
12556
13088
|
<div class="doc doc-contents ">
|
|
12557
13089
|
|
|
12558
|
-
|
|
13090
|
+
<p>Deprecated - use <code>list(self.dynamic_groups)</code> instead.</p>
|
|
12559
13091
|
</div>
|
|
12560
13092
|
|
|
12561
13093
|
</div>
|
|
@@ -12576,7 +13108,7 @@ to the new DynamicGroupsModelMixin in its place.</p>
|
|
|
12576
13108
|
|
|
12577
13109
|
<div class="doc doc-contents ">
|
|
12578
13110
|
|
|
12579
|
-
|
|
13111
|
+
<p>Deprecated - use <code>list(self.dynamic_groups)</code> instead.</p>
|
|
12580
13112
|
</div>
|
|
12581
13113
|
|
|
12582
13114
|
</div>
|
|
@@ -12594,7 +13126,7 @@ to the new DynamicGroupsModelMixin in its place.</p>
|
|
|
12594
13126
|
|
|
12595
13127
|
<div class="doc doc-contents ">
|
|
12596
13128
|
|
|
12597
|
-
|
|
13129
|
+
<p>Return the dynamic groups URL for a given instance.</p>
|
|
12598
13130
|
|
|
12599
13131
|
</div>
|
|
12600
13132
|
|
|
@@ -12621,10 +13153,15 @@ to the new DynamicGroupsModelMixin in its place.</p>
|
|
|
12621
13153
|
|
|
12622
13154
|
<div class="doc doc-contents ">
|
|
12623
13155
|
<p class="doc doc-class-bases">
|
|
12624
|
-
Bases: <code><
|
|
13156
|
+
Bases: <code><a class="autorefs autorefs-internal" title="nautobot.extras.models.mixins.DynamicGroupMixin" href="#nautobot.apps.models.DynamicGroupMixin">DynamicGroupMixin</a></code>, <code><span title="django.db.models.Model">Model</span></code></p>
|
|
13157
|
+
|
|
13158
|
+
|
|
13159
|
+
<p>Add this to models to make them fully support Dynamic Groups.</p>
|
|
13160
|
+
|
|
13161
|
+
|
|
13162
|
+
|
|
12625
13163
|
|
|
12626
13164
|
|
|
12627
|
-
<p>Add this to models to make them fully support Dynamic Groups.</p>
|
|
12628
13165
|
|
|
12629
13166
|
|
|
12630
13167
|
|
|
@@ -12660,16 +13197,21 @@ to the new DynamicGroupsModelMixin in its place.</p>
|
|
|
12660
13197
|
|
|
12661
13198
|
<div class="doc doc-contents ">
|
|
12662
13199
|
<p class="doc doc-class-bases">
|
|
12663
|
-
Bases: <code><
|
|
13200
|
+
Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.models.query_functions.JSONBAgg" href="#nautobot.apps.models.JSONBAgg">JSONBAgg</a></code></p>
|
|
12664
13201
|
|
|
12665
13202
|
|
|
12666
|
-
|
|
13203
|
+
<p>JSONBAgg is a builtin aggregation function which means it includes the use of a GROUP BY clause.
|
|
12667
13204
|
When used as an annotation for collecting config context data objects, the GROUP BY is
|
|
12668
13205
|
incorrect. This subclass overrides the Django ORM aggregation control to remove the GROUP BY.</p>
|
|
12669
13206
|
|
|
12670
13207
|
|
|
12671
13208
|
|
|
12672
13209
|
|
|
13210
|
+
|
|
13211
|
+
|
|
13212
|
+
|
|
13213
|
+
|
|
13214
|
+
|
|
12673
13215
|
<div class="doc doc-children">
|
|
12674
13216
|
|
|
12675
13217
|
|
|
@@ -12701,15 +13243,20 @@ incorrect. This subclass overrides the Django ORM aggregation control to remove
|
|
|
12701
13243
|
|
|
12702
13244
|
<div class="doc doc-contents ">
|
|
12703
13245
|
<p class="doc doc-class-bases">
|
|
12704
|
-
Bases: <code><
|
|
13246
|
+
Bases: <code><span title="django.core.validators.URLValidator">URLValidator</span></code></p>
|
|
12705
13247
|
|
|
12706
13248
|
|
|
12707
|
-
|
|
13249
|
+
<p>Extends Django's built-in URLValidator to permit the use of hostnames with no domain extension and enforce allowed
|
|
12708
13250
|
schemes specified in the configuration.</p>
|
|
12709
13251
|
|
|
12710
13252
|
|
|
12711
13253
|
|
|
12712
13254
|
|
|
13255
|
+
|
|
13256
|
+
|
|
13257
|
+
|
|
13258
|
+
|
|
13259
|
+
|
|
12713
13260
|
<div class="doc doc-children">
|
|
12714
13261
|
|
|
12715
13262
|
|
|
@@ -12741,10 +13288,15 @@ schemes specified in the configuration.</p>
|
|
|
12741
13288
|
|
|
12742
13289
|
<div class="doc doc-contents ">
|
|
12743
13290
|
<p class="doc doc-class-bases">
|
|
12744
|
-
Bases: <code><
|
|
13291
|
+
Bases: <code><span title="django.core.validators.BaseValidator">BaseValidator</span></code></p>
|
|
13292
|
+
|
|
13293
|
+
|
|
13294
|
+
<p>Ensure that a field's value is not equal to any of the specified values.</p>
|
|
13295
|
+
|
|
13296
|
+
|
|
13297
|
+
|
|
12745
13298
|
|
|
12746
13299
|
|
|
12747
|
-
<p>Ensure that a field's value is not equal to any of the specified values.</p>
|
|
12748
13300
|
|
|
12749
13301
|
|
|
12750
13302
|
|
|
@@ -12780,10 +13332,10 @@ schemes specified in the configuration.</p>
|
|
|
12780
13332
|
|
|
12781
13333
|
<div class="doc doc-contents ">
|
|
12782
13334
|
<p class="doc doc-class-bases">
|
|
12783
|
-
Bases: <code><
|
|
13335
|
+
Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.models.fields.ForeignKeyWithAutoRelatedName" href="#nautobot.apps.models.ForeignKeyWithAutoRelatedName">ForeignKeyWithAutoRelatedName</a></code></p>
|
|
12784
13336
|
|
|
12785
13337
|
|
|
12786
|
-
|
|
13338
|
+
<p>An abstract model field that automatically restricts ForeignKey options based on content_types.</p>
|
|
12787
13339
|
<p>For instance, if the model "Role" contains two records: role_1 and role_2, role_1's content_types
|
|
12788
13340
|
are set to "dcim.location" and "dcim.device" while the role_2's content_types are set to
|
|
12789
13341
|
"circuit.circuit" and "dcim.location."</p>
|
|
@@ -12800,6 +13352,11 @@ while role_1 & role_2 are both available for the Location model.</p>
|
|
|
12800
13352
|
|
|
12801
13353
|
|
|
12802
13354
|
|
|
13355
|
+
|
|
13356
|
+
|
|
13357
|
+
|
|
13358
|
+
|
|
13359
|
+
|
|
12803
13360
|
<div class="doc doc-children">
|
|
12804
13361
|
|
|
12805
13362
|
|
|
@@ -12821,7 +13378,7 @@ while role_1 & role_2 are both available for the Location model.</p>
|
|
|
12821
13378
|
|
|
12822
13379
|
<div class="doc doc-contents ">
|
|
12823
13380
|
|
|
12824
|
-
|
|
13381
|
+
<p>Return a prepped formfield for use in model forms.</p>
|
|
12825
13382
|
|
|
12826
13383
|
</div>
|
|
12827
13384
|
|
|
@@ -12838,7 +13395,7 @@ while role_1 & role_2 are both available for the Location model.</p>
|
|
|
12838
13395
|
|
|
12839
13396
|
<div class="doc doc-contents ">
|
|
12840
13397
|
|
|
12841
|
-
|
|
13398
|
+
<p>Limit this field to only objects which are assigned to this model's content-type.</p>
|
|
12842
13399
|
<p>Note that this is implemented via specifying <code>content_types__app_label=</code> and <code>content_types__model=</code>
|
|
12843
13400
|
rather than via the more obvious <code>content_types=ContentType.objects.get_for_model(self.model)</code>
|
|
12844
13401
|
because the latter approach would involve a database query, and in some cases
|
|
@@ -12869,10 +13426,10 @@ because the latter approach would involve a database query, and in some cases
|
|
|
12869
13426
|
|
|
12870
13427
|
<div class="doc doc-contents ">
|
|
12871
13428
|
<p class="doc doc-class-bases">
|
|
12872
|
-
Bases: <code><
|
|
13429
|
+
Bases: <code><span title="django.db.models.ForeignKey">ForeignKey</span></code></p>
|
|
12873
13430
|
|
|
12874
13431
|
|
|
12875
|
-
|
|
13432
|
+
<p>Extend base ForeignKey functionality to create a smarter default <code>related_name</code>.</p>
|
|
12876
13433
|
<p>For example, "ip_addresses" instead of "ipaddress_set", "ipaddresss", or "ipam_ipaddress_related".</p>
|
|
12877
13434
|
<p>Primarily useful for cases of abstract base classes that define ForeignKeys, such as
|
|
12878
13435
|
<code>nautobot.dcim.models.device_components.ComponentModel</code>.</p>
|
|
@@ -12880,6 +13437,11 @@ because the latter approach would involve a database query, and in some cases
|
|
|
12880
13437
|
|
|
12881
13438
|
|
|
12882
13439
|
|
|
13440
|
+
|
|
13441
|
+
|
|
13442
|
+
|
|
13443
|
+
|
|
13444
|
+
|
|
12883
13445
|
<div class="doc doc-children">
|
|
12884
13446
|
|
|
12885
13447
|
|
|
@@ -12911,11 +13473,17 @@ because the latter approach would involve a database query, and in some cases
|
|
|
12911
13473
|
|
|
12912
13474
|
<div class="doc doc-contents ">
|
|
12913
13475
|
<p class="doc doc-class-bases">
|
|
12914
|
-
Bases: <code><
|
|
13476
|
+
Bases: <code><span title="django.db.models.JSONField">JSONField</span></code></p>
|
|
12915
13477
|
|
|
12916
13478
|
|
|
12917
|
-
|
|
13479
|
+
<p>An ArrayField implementation backed JSON storage.
|
|
12918
13480
|
Replicates ArrayField's base field validation.</p>
|
|
13481
|
+
<p>Supports choices in the base field.</p>
|
|
13482
|
+
|
|
13483
|
+
|
|
13484
|
+
|
|
13485
|
+
|
|
13486
|
+
|
|
12919
13487
|
|
|
12920
13488
|
|
|
12921
13489
|
|
|
@@ -12970,7 +13538,7 @@ Replicates ArrayField's base field validation.</p>
|
|
|
12970
13538
|
|
|
12971
13539
|
<div class="doc doc-contents ">
|
|
12972
13540
|
|
|
12973
|
-
|
|
13541
|
+
<p>Return a django.forms.Field instance for this field.</p>
|
|
12974
13542
|
|
|
12975
13543
|
</div>
|
|
12976
13544
|
|
|
@@ -12987,7 +13555,7 @@ Replicates ArrayField's base field validation.</p>
|
|
|
12987
13555
|
|
|
12988
13556
|
<div class="doc doc-contents ">
|
|
12989
13557
|
|
|
12990
|
-
|
|
13558
|
+
<p>Perform preliminary non-db specific value checks and conversions.</p>
|
|
12991
13559
|
|
|
12992
13560
|
</div>
|
|
12993
13561
|
|
|
@@ -13004,7 +13572,7 @@ Replicates ArrayField's base field validation.</p>
|
|
|
13004
13572
|
|
|
13005
13573
|
<div class="doc doc-contents ">
|
|
13006
13574
|
|
|
13007
|
-
|
|
13575
|
+
<p>Runs all validators against <code>value</code> and raise ValidationError if necessary.
|
|
13008
13576
|
Some validators can't be created at field initialization time.</p>
|
|
13009
13577
|
|
|
13010
13578
|
</div>
|
|
@@ -13022,7 +13590,7 @@ Some validators can't be created at field initialization time.</p>
|
|
|
13022
13590
|
|
|
13023
13591
|
<div class="doc doc-contents ">
|
|
13024
13592
|
|
|
13025
|
-
|
|
13593
|
+
<p>Convert <code>value</code> into JSON, raising django.core.exceptions.ValidationError
|
|
13026
13594
|
if the data can't be converted. Return the converted value.</p>
|
|
13027
13595
|
|
|
13028
13596
|
</div>
|
|
@@ -13040,7 +13608,7 @@ if the data can't be converted. Return the converted value.</p>
|
|
|
13040
13608
|
|
|
13041
13609
|
<div class="doc doc-contents ">
|
|
13042
13610
|
|
|
13043
|
-
|
|
13611
|
+
<p>Validate <code>value</code> and raise ValidationError if necessary.</p>
|
|
13044
13612
|
|
|
13045
13613
|
</div>
|
|
13046
13614
|
|
|
@@ -13057,7 +13625,7 @@ if the data can't be converted. Return the converted value.</p>
|
|
|
13057
13625
|
|
|
13058
13626
|
<div class="doc doc-contents ">
|
|
13059
13627
|
|
|
13060
|
-
|
|
13628
|
+
<p>Return a string value of this field from the passed obj.
|
|
13061
13629
|
This is used by the serialization framework.</p>
|
|
13062
13630
|
|
|
13063
13631
|
</div>
|
|
@@ -13085,10 +13653,10 @@ This is used by the serialization framework.</p>
|
|
|
13085
13653
|
|
|
13086
13654
|
<div class="doc doc-contents ">
|
|
13087
13655
|
<p class="doc doc-class-bases">
|
|
13088
|
-
Bases: <code><
|
|
13656
|
+
Bases: <code><span title="django.db.models.Aggregate">Aggregate</span></code></p>
|
|
13089
13657
|
|
|
13090
13658
|
|
|
13091
|
-
|
|
13659
|
+
<p>Like django.contrib.postgres.aggregates.JSONBAgg, but different.</p>
|
|
13092
13660
|
<ol>
|
|
13093
13661
|
<li>Supports both Postgres (JSONB_AGG) and MySQL (JSON_ARRAYAGG)</li>
|
|
13094
13662
|
<li>Does not support <code>ordering</code> as JSON_ARRAYAGG does not guarantee ordering.</li>
|
|
@@ -13097,6 +13665,11 @@ This is used by the serialization framework.</p>
|
|
|
13097
13665
|
|
|
13098
13666
|
|
|
13099
13667
|
|
|
13668
|
+
|
|
13669
|
+
|
|
13670
|
+
|
|
13671
|
+
|
|
13672
|
+
|
|
13100
13673
|
<div class="doc doc-children">
|
|
13101
13674
|
|
|
13102
13675
|
|
|
@@ -13128,10 +13701,15 @@ This is used by the serialization framework.</p>
|
|
|
13128
13701
|
|
|
13129
13702
|
<div class="doc doc-contents ">
|
|
13130
13703
|
<p class="doc doc-class-bases">
|
|
13131
|
-
Bases: <code><
|
|
13704
|
+
Bases: <code><span title="django.db.models.URLField">URLField</span></code></p>
|
|
13705
|
+
|
|
13706
|
+
|
|
13707
|
+
<p>Like models.URLField, but using validators.EnhancedURLValidator and forms.LaxURLField.</p>
|
|
13708
|
+
|
|
13709
|
+
|
|
13710
|
+
|
|
13132
13711
|
|
|
13133
13712
|
|
|
13134
|
-
<p>Like models.URLField, but using validators.EnhancedURLValidator and forms.LaxURLField.</p>
|
|
13135
13713
|
|
|
13136
13714
|
|
|
13137
13715
|
|
|
@@ -13167,15 +13745,20 @@ This is used by the serialization framework.</p>
|
|
|
13167
13745
|
|
|
13168
13746
|
<div class="doc doc-contents ">
|
|
13169
13747
|
<p class="doc doc-class-bases">
|
|
13170
|
-
Bases: <code><
|
|
13748
|
+
Bases: <code><a class="autorefs autorefs-internal" title="nautobot.extras.models.change_logging.ChangeLoggedModel" href="#nautobot.apps.models.ChangeLoggedModel">ChangeLoggedModel</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.extras.models.mixins.ContactMixin" href="#nautobot.apps.models.ContactMixin">ContactMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.extras.models.customfields.CustomFieldModel" href="#nautobot.apps.models.CustomFieldModel">CustomFieldModel</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.extras.models.mixins.DynamicGroupsModelMixin" href="#nautobot.apps.models.DynamicGroupsModelMixin">DynamicGroupsModelMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.extras.models.mixins.NotesMixin" href="#nautobot.apps.models.NotesMixin">NotesMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.extras.models.relationships.RelationshipModel" href="#nautobot.apps.models.RelationshipModel">RelationshipModel</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.extras.models.mixins.SavedViewMixin" href="#nautobot.apps.models.SavedViewMixin">SavedViewMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.models.BaseModel" href="#nautobot.apps.models.BaseModel">BaseModel</a></code></p>
|
|
13171
13749
|
|
|
13172
13750
|
|
|
13173
|
-
|
|
13751
|
+
<p>This abstract base properties model contains fields and functionality that are
|
|
13174
13752
|
shared amongst models that requires these fields: name, color, content_types and description.</p>
|
|
13175
13753
|
|
|
13176
13754
|
|
|
13177
13755
|
|
|
13178
13756
|
|
|
13757
|
+
|
|
13758
|
+
|
|
13759
|
+
|
|
13760
|
+
|
|
13761
|
+
|
|
13179
13762
|
<div class="doc doc-children">
|
|
13180
13763
|
|
|
13181
13764
|
|
|
@@ -13207,16 +13790,21 @@ shared amongst models that requires these fields: name, color, content_types and
|
|
|
13207
13790
|
|
|
13208
13791
|
<div class="doc doc-contents ">
|
|
13209
13792
|
<p class="doc doc-class-bases">
|
|
13210
|
-
Bases: <code><
|
|
13793
|
+
Bases: <code><span title="django.db.models.CharField">CharField</span></code></p>
|
|
13211
13794
|
|
|
13212
13795
|
|
|
13213
|
-
|
|
13796
|
+
<p>A field which stores a naturalized representation of its target field, to be used for ordering its parent model.</p>
|
|
13214
13797
|
<p>:param target_field: Name of the field of the parent model to be naturalized
|
|
13215
13798
|
:param naturalize_function: The function used to generate a naturalized value (optional)</p>
|
|
13216
13799
|
|
|
13217
13800
|
|
|
13218
13801
|
|
|
13219
13802
|
|
|
13803
|
+
|
|
13804
|
+
|
|
13805
|
+
|
|
13806
|
+
|
|
13807
|
+
|
|
13220
13808
|
<div class="doc doc-children">
|
|
13221
13809
|
|
|
13222
13810
|
|
|
@@ -13238,7 +13826,7 @@ shared amongst models that requires these fields: name, color, content_types and
|
|
|
13238
13826
|
|
|
13239
13827
|
<div class="doc doc-contents ">
|
|
13240
13828
|
|
|
13241
|
-
|
|
13829
|
+
<p>Generate a naturalized value from the target field</p>
|
|
13242
13830
|
|
|
13243
13831
|
</div>
|
|
13244
13832
|
|
|
@@ -13266,7 +13854,12 @@ shared amongst models that requires these fields: name, color, content_types and
|
|
|
13266
13854
|
<div class="doc doc-contents ">
|
|
13267
13855
|
|
|
13268
13856
|
|
|
13269
|
-
|
|
13857
|
+
<p>Adds a <code>notes</code> property that returns a queryset of <code>Notes</code> membership.</p>
|
|
13858
|
+
|
|
13859
|
+
|
|
13860
|
+
|
|
13861
|
+
|
|
13862
|
+
|
|
13270
13863
|
|
|
13271
13864
|
|
|
13272
13865
|
|
|
@@ -13295,7 +13888,7 @@ shared amongst models that requires these fields: name, color, content_types and
|
|
|
13295
13888
|
|
|
13296
13889
|
<div class="doc doc-contents ">
|
|
13297
13890
|
|
|
13298
|
-
|
|
13891
|
+
<p>Return a <code>Notes</code> queryset for this instance.</p>
|
|
13299
13892
|
</div>
|
|
13300
13893
|
|
|
13301
13894
|
</div>
|
|
@@ -13313,7 +13906,7 @@ shared amongst models that requires these fields: name, color, content_types and
|
|
|
13313
13906
|
|
|
13314
13907
|
<div class="doc doc-contents ">
|
|
13315
13908
|
|
|
13316
|
-
|
|
13909
|
+
<p>Return the notes URL for a given instance.</p>
|
|
13317
13910
|
|
|
13318
13911
|
</div>
|
|
13319
13912
|
|
|
@@ -13340,10 +13933,10 @@ shared amongst models that requires these fields: name, color, content_types and
|
|
|
13340
13933
|
|
|
13341
13934
|
<div class="doc doc-contents ">
|
|
13342
13935
|
<p class="doc doc-class-bases">
|
|
13343
|
-
Bases: <code><
|
|
13936
|
+
Bases: <code><a class="autorefs autorefs-internal" title="nautobot.extras.models.change_logging.ChangeLoggedModel" href="#nautobot.apps.models.ChangeLoggedModel">ChangeLoggedModel</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.extras.models.mixins.ContactMixin" href="#nautobot.apps.models.ContactMixin">ContactMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.extras.models.customfields.CustomFieldModel" href="#nautobot.apps.models.CustomFieldModel">CustomFieldModel</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.extras.models.mixins.DynamicGroupsModelMixin" href="#nautobot.apps.models.DynamicGroupsModelMixin">DynamicGroupsModelMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.extras.models.mixins.NotesMixin" href="#nautobot.apps.models.NotesMixin">NotesMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.extras.models.relationships.RelationshipModel" href="#nautobot.apps.models.RelationshipModel">RelationshipModel</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.extras.models.mixins.SavedViewMixin" href="#nautobot.apps.models.SavedViewMixin">SavedViewMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.models.BaseModel" href="#nautobot.apps.models.BaseModel">BaseModel</a></code></p>
|
|
13344
13937
|
|
|
13345
13938
|
|
|
13346
|
-
|
|
13939
|
+
<p>Base abstract model for all organizational models.</p>
|
|
13347
13940
|
<p>Organizational models aid the primary models by building structured relationships
|
|
13348
13941
|
and logical groups, or categorizations. Organizational models do not typically
|
|
13349
13942
|
represent concrete networking resources or assets, but rather they enable user
|
|
@@ -13353,6 +13946,11 @@ Device Role, Rack Group, Status, Manufacturer, and Platform.</p>
|
|
|
13353
13946
|
|
|
13354
13947
|
|
|
13355
13948
|
|
|
13949
|
+
|
|
13950
|
+
|
|
13951
|
+
|
|
13952
|
+
|
|
13953
|
+
|
|
13356
13954
|
<div class="doc doc-children">
|
|
13357
13955
|
|
|
13358
13956
|
|
|
@@ -13384,10 +13982,10 @@ Device Role, Rack Group, Status, Manufacturer, and Platform.</p>
|
|
|
13384
13982
|
|
|
13385
13983
|
<div class="doc doc-contents ">
|
|
13386
13984
|
<p class="doc doc-class-bases">
|
|
13387
|
-
Bases: <code><
|
|
13985
|
+
Bases: <code><a class="autorefs autorefs-internal" title="nautobot.extras.models.change_logging.ChangeLoggedModel" href="#nautobot.apps.models.ChangeLoggedModel">ChangeLoggedModel</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.extras.models.mixins.ContactMixin" href="#nautobot.apps.models.ContactMixin">ContactMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.extras.models.customfields.CustomFieldModel" href="#nautobot.apps.models.CustomFieldModel">CustomFieldModel</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.extras.models.mixins.DynamicGroupsModelMixin" href="#nautobot.apps.models.DynamicGroupsModelMixin">DynamicGroupsModelMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.extras.models.mixins.NotesMixin" href="#nautobot.apps.models.NotesMixin">NotesMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.extras.models.relationships.RelationshipModel" href="#nautobot.apps.models.RelationshipModel">RelationshipModel</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.extras.models.mixins.SavedViewMixin" href="#nautobot.apps.models.SavedViewMixin">SavedViewMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.models.BaseModel" href="#nautobot.apps.models.BaseModel">BaseModel</a></code></p>
|
|
13388
13986
|
|
|
13389
13987
|
|
|
13390
|
-
|
|
13988
|
+
<p>Base abstract model for all primary models.</p>
|
|
13391
13989
|
<p>A primary model is one which is materialistically relevant to the network datamodel.
|
|
13392
13990
|
Such models form the basis of major elements of the data model, like Device,
|
|
13393
13991
|
IP Address, Location, VLAN, Virtual Machine, etc. Primary models usually represent
|
|
@@ -13396,6 +13994,11 @@ tangible or logical resources on the network, or within the organization.</p>
|
|
|
13396
13994
|
|
|
13397
13995
|
|
|
13398
13996
|
|
|
13997
|
+
|
|
13998
|
+
|
|
13999
|
+
|
|
14000
|
+
|
|
14001
|
+
|
|
13399
14002
|
<div class="doc doc-children">
|
|
13400
14003
|
|
|
13401
14004
|
|
|
@@ -13427,10 +14030,15 @@ tangible or logical resources on the network, or within the organization.</p>
|
|
|
13427
14030
|
|
|
13428
14031
|
<div class="doc doc-contents ">
|
|
13429
14032
|
<p class="doc doc-class-bases">
|
|
13430
|
-
Bases: <code><
|
|
14033
|
+
Bases: <code><span title="django.db.models.Model">Model</span></code></p>
|
|
14034
|
+
|
|
14035
|
+
|
|
14036
|
+
<p>Abstract class for any model which may have custom relationships associated with it.</p>
|
|
14037
|
+
|
|
14038
|
+
|
|
14039
|
+
|
|
13431
14040
|
|
|
13432
14041
|
|
|
13433
|
-
<p>Abstract class for any model which may have custom relationships associated with it.</p>
|
|
13434
14042
|
|
|
13435
14043
|
|
|
13436
14044
|
|
|
@@ -13456,7 +14064,7 @@ tangible or logical resources on the network, or within the organization.</p>
|
|
|
13456
14064
|
|
|
13457
14065
|
<div class="doc doc-contents ">
|
|
13458
14066
|
|
|
13459
|
-
|
|
14067
|
+
<p>Return a dictionary of RelationshipAssociation querysets for all custom relationships</p>
|
|
13460
14068
|
|
|
13461
14069
|
|
|
13462
14070
|
<p><span class="doc-section-title">Returns:</span></p>
|
|
@@ -13470,7 +14078,7 @@ tangible or logical resources on the network, or within the organization.</p>
|
|
|
13470
14078
|
<tbody>
|
|
13471
14079
|
<tr class="doc-section-item">
|
|
13472
14080
|
<td>
|
|
13473
|
-
<code
|
|
14081
|
+
<code>dict</code>
|
|
13474
14082
|
</td>
|
|
13475
14083
|
<td>
|
|
13476
14084
|
<div class="doc-md-description">
|
|
@@ -13509,7 +14117,7 @@ tangible or logical resources on the network, or within the organization.</p>
|
|
|
13509
14117
|
|
|
13510
14118
|
<div class="doc doc-contents ">
|
|
13511
14119
|
|
|
13512
|
-
|
|
14120
|
+
<p>Return a dictionary of relationships with the label and the value or the queryset for each.</p>
|
|
13513
14121
|
<p>Used for rendering relationships in the UI; see nautobot/core/templates/inc/relationships_table_rows.html</p>
|
|
13514
14122
|
|
|
13515
14123
|
|
|
@@ -13524,7 +14132,7 @@ tangible or logical resources on the network, or within the organization.</p>
|
|
|
13524
14132
|
<tbody>
|
|
13525
14133
|
<tr class="doc-section-item">
|
|
13526
14134
|
<td>
|
|
13527
|
-
<code
|
|
14135
|
+
<code>dict</code>
|
|
13528
14136
|
</td>
|
|
13529
14137
|
<td>
|
|
13530
14138
|
<div class="doc-md-description">
|
|
@@ -13573,7 +14181,7 @@ tangible or logical resources on the network, or within the organization.</p>
|
|
|
13573
14181
|
|
|
13574
14182
|
<div class="doc doc-contents ">
|
|
13575
14183
|
|
|
13576
|
-
|
|
14184
|
+
<p>Same docstring as get_relationships_data() above except this only returns relationships
|
|
13577
14185
|
where advanced_ui==True for displaying in the 'Advanced' tab on the object's page</p>
|
|
13578
14186
|
|
|
13579
14187
|
</div>
|
|
@@ -13591,7 +14199,7 @@ where advanced_ui==True for displaying in the 'Advanced' tab on the object's pag
|
|
|
13591
14199
|
|
|
13592
14200
|
<div class="doc doc-contents ">
|
|
13593
14201
|
|
|
13594
|
-
|
|
14202
|
+
<p>Same docstring as get_relationships_data() above except this only returns relationships
|
|
13595
14203
|
where advanced_ui==False for displaying in the main object detail tab on the object's page</p>
|
|
13596
14204
|
|
|
13597
14205
|
</div>
|
|
@@ -13601,6 +14209,23 @@ where advanced_ui==False for displaying in the main object detail tab on the obj
|
|
|
13601
14209
|
<div class="doc doc-object doc-function">
|
|
13602
14210
|
|
|
13603
14211
|
|
|
14212
|
+
<h3 id="nautobot.apps.models.RelationshipModel.get_relationships_with_related_objects" class="doc doc-heading">
|
|
14213
|
+
<code class="highlight language-python"><span class="n">get_relationships_with_related_objects</span><span class="p">(</span><span class="n">include_hidden</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">advanced_ui</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span></code>
|
|
14214
|
+
|
|
14215
|
+
<a href="#nautobot.apps.models.RelationshipModel.get_relationships_with_related_objects" class="headerlink" title="Permanent link">¶</a></h3>
|
|
14216
|
+
|
|
14217
|
+
|
|
14218
|
+
<div class="doc doc-contents ">
|
|
14219
|
+
|
|
14220
|
+
<p>Alternative version of get_relationships().</p>
|
|
14221
|
+
|
|
14222
|
+
</div>
|
|
14223
|
+
|
|
14224
|
+
</div>
|
|
14225
|
+
|
|
14226
|
+
<div class="doc doc-object doc-function">
|
|
14227
|
+
|
|
14228
|
+
|
|
13604
14229
|
<h3 id="nautobot.apps.models.RelationshipModel.required_related_objects_errors" class="doc doc-heading">
|
|
13605
14230
|
<code class="highlight language-python"><span class="n">required_related_objects_errors</span><span class="p">(</span><span class="n">output_for</span><span class="o">=</span><span class="s1">'ui'</span><span class="p">,</span> <span class="n">initial_data</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">relationships_key_specified</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">instance</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span></code>
|
|
13606
14231
|
|
|
@@ -13627,9 +14252,11 @@ where advanced_ui==False for displaying in the main object detail tab on the obj
|
|
|
13627
14252
|
</thead>
|
|
13628
14253
|
<tbody>
|
|
13629
14254
|
<tr class="doc-section-item">
|
|
13630
|
-
<td><code>output_for</code></td>
|
|
13631
14255
|
<td>
|
|
13632
|
-
|
|
14256
|
+
<code>output_for</code>
|
|
14257
|
+
</td>
|
|
14258
|
+
<td>
|
|
14259
|
+
<code>str</code>
|
|
13633
14260
|
</td>
|
|
13634
14261
|
<td>
|
|
13635
14262
|
<div class="doc-md-description">
|
|
@@ -13641,9 +14268,11 @@ where advanced_ui==False for displaying in the main object detail tab on the obj
|
|
|
13641
14268
|
</td>
|
|
13642
14269
|
</tr>
|
|
13643
14270
|
<tr class="doc-section-item">
|
|
13644
|
-
<td><code>initial_data</code></td>
|
|
13645
14271
|
<td>
|
|
13646
|
-
|
|
14272
|
+
<code>initial_data</code>
|
|
14273
|
+
</td>
|
|
14274
|
+
<td>
|
|
14275
|
+
<code>dict</code>
|
|
13647
14276
|
</td>
|
|
13648
14277
|
<td>
|
|
13649
14278
|
<div class="doc-md-description">
|
|
@@ -13655,9 +14284,11 @@ where advanced_ui==False for displaying in the main object detail tab on the obj
|
|
|
13655
14284
|
</td>
|
|
13656
14285
|
</tr>
|
|
13657
14286
|
<tr class="doc-section-item">
|
|
13658
|
-
<td><code>relationships_key_specified</code></td>
|
|
13659
14287
|
<td>
|
|
13660
|
-
|
|
14288
|
+
<code>relationships_key_specified</code>
|
|
14289
|
+
</td>
|
|
14290
|
+
<td>
|
|
14291
|
+
<code>bool</code>
|
|
13661
14292
|
</td>
|
|
13662
14293
|
<td>
|
|
13663
14294
|
<div class="doc-md-description">
|
|
@@ -13669,9 +14300,11 @@ where advanced_ui==False for displaying in the main object detail tab on the obj
|
|
|
13669
14300
|
</td>
|
|
13670
14301
|
</tr>
|
|
13671
14302
|
<tr class="doc-section-item">
|
|
13672
|
-
<td><code>instance</code></td>
|
|
13673
14303
|
<td>
|
|
13674
|
-
|
|
14304
|
+
<code>instance</code>
|
|
14305
|
+
</td>
|
|
14306
|
+
<td>
|
|
14307
|
+
<code>Optional[<a class="autorefs autorefs-internal" title="nautobot.core.models.BaseModel" href="#nautobot.apps.models.BaseModel">BaseModel</a>]</code>
|
|
13675
14308
|
</td>
|
|
13676
14309
|
<td>
|
|
13677
14310
|
<div class="doc-md-description">
|
|
@@ -13684,7 +14317,7 @@ where advanced_ui==False for displaying in the main object detail tab on the obj
|
|
|
13684
14317
|
</tr>
|
|
13685
14318
|
</tbody>
|
|
13686
14319
|
</table>
|
|
13687
|
-
|
|
14320
|
+
<p>Returns:
|
|
13688
14321
|
(list[dict]): List of field error dicts if any are found</p>
|
|
13689
14322
|
|
|
13690
14323
|
</div>
|
|
@@ -13712,7 +14345,12 @@ where advanced_ui==False for displaying in the main object detail tab on the obj
|
|
|
13712
14345
|
|
|
13713
14346
|
<div class="doc doc-contents ">
|
|
13714
14347
|
<p class="doc doc-class-bases">
|
|
13715
|
-
Bases: <code><
|
|
14348
|
+
Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.models.querysets.CompositeKeyQuerySetMixin" href="#nautobot.apps.models.CompositeKeyQuerySetMixin">CompositeKeyQuerySetMixin</a></code>, <code><span title="django.db.models.QuerySet">QuerySet</span></code></p>
|
|
14349
|
+
|
|
14350
|
+
|
|
14351
|
+
|
|
14352
|
+
|
|
14353
|
+
|
|
13716
14354
|
|
|
13717
14355
|
|
|
13718
14356
|
|
|
@@ -13739,7 +14377,7 @@ where advanced_ui==False for displaying in the main object detail tab on the obj
|
|
|
13739
14377
|
|
|
13740
14378
|
<div class="doc doc-contents ">
|
|
13741
14379
|
|
|
13742
|
-
|
|
14380
|
+
<p>Check whether the given user can perform the given action with regard to the given instance of this model.</p>
|
|
13743
14381
|
<p>Either instance or pk must be specified, but not both.</p>
|
|
13744
14382
|
|
|
13745
14383
|
|
|
@@ -13755,9 +14393,11 @@ where advanced_ui==False for displaying in the main object detail tab on the obj
|
|
|
13755
14393
|
</thead>
|
|
13756
14394
|
<tbody>
|
|
13757
14395
|
<tr class="doc-section-item">
|
|
13758
|
-
<td><code>user</code></td>
|
|
13759
14396
|
<td>
|
|
13760
|
-
|
|
14397
|
+
<code>user</code>
|
|
14398
|
+
</td>
|
|
14399
|
+
<td>
|
|
14400
|
+
<code>User</code>
|
|
13761
14401
|
</td>
|
|
13762
14402
|
<td>
|
|
13763
14403
|
<div class="doc-md-description">
|
|
@@ -13769,9 +14409,11 @@ where advanced_ui==False for displaying in the main object detail tab on the obj
|
|
|
13769
14409
|
</td>
|
|
13770
14410
|
</tr>
|
|
13771
14411
|
<tr class="doc-section-item">
|
|
13772
|
-
<td><code>instance</code></td>
|
|
13773
14412
|
<td>
|
|
13774
|
-
|
|
14413
|
+
<code>instance</code>
|
|
14414
|
+
</td>
|
|
14415
|
+
<td>
|
|
14416
|
+
<code><span title="self.model">model</span></code>
|
|
13775
14417
|
</td>
|
|
13776
14418
|
<td>
|
|
13777
14419
|
<div class="doc-md-description">
|
|
@@ -13783,9 +14425,11 @@ where advanced_ui==False for displaying in the main object detail tab on the obj
|
|
|
13783
14425
|
</td>
|
|
13784
14426
|
</tr>
|
|
13785
14427
|
<tr class="doc-section-item">
|
|
13786
|
-
<td><code>pk</code></td>
|
|
13787
14428
|
<td>
|
|
13788
|
-
|
|
14429
|
+
<code>pk</code>
|
|
14430
|
+
</td>
|
|
14431
|
+
<td>
|
|
14432
|
+
<code>uuid</code>
|
|
13789
14433
|
</td>
|
|
13790
14434
|
<td>
|
|
13791
14435
|
<div class="doc-md-description">
|
|
@@ -13797,9 +14441,11 @@ where advanced_ui==False for displaying in the main object detail tab on the obj
|
|
|
13797
14441
|
</td>
|
|
13798
14442
|
</tr>
|
|
13799
14443
|
<tr class="doc-section-item">
|
|
13800
|
-
<td><code>action</code></td>
|
|
13801
14444
|
<td>
|
|
13802
|
-
|
|
14445
|
+
<code>action</code>
|
|
14446
|
+
</td>
|
|
14447
|
+
<td>
|
|
14448
|
+
<code>str</code>
|
|
13803
14449
|
</td>
|
|
13804
14450
|
<td>
|
|
13805
14451
|
<div class="doc-md-description">
|
|
@@ -13825,7 +14471,7 @@ where advanced_ui==False for displaying in the main object detail tab on the obj
|
|
|
13825
14471
|
<tbody>
|
|
13826
14472
|
<tr class="doc-section-item">
|
|
13827
14473
|
<td>
|
|
13828
|
-
<code
|
|
14474
|
+
<code>bool</code>
|
|
13829
14475
|
</td>
|
|
13830
14476
|
<td>
|
|
13831
14477
|
<div class="doc-md-description">
|
|
@@ -13851,7 +14497,7 @@ where advanced_ui==False for displaying in the main object detail tab on the obj
|
|
|
13851
14497
|
|
|
13852
14498
|
<div class="doc doc-contents ">
|
|
13853
14499
|
|
|
13854
|
-
|
|
14500
|
+
<p>Wrapper for <code>QuerySet.values_list()</code> that adds the <code>distinct()</code> query to return a list of unique values.</p>
|
|
13855
14501
|
|
|
13856
14502
|
|
|
13857
14503
|
<details class="note" open>
|
|
@@ -13872,9 +14518,11 @@ in the Django <code>distinct()</code> documentation at https://docs.djangoprojec
|
|
|
13872
14518
|
</thead>
|
|
13873
14519
|
<tbody>
|
|
13874
14520
|
<tr class="doc-section-item">
|
|
13875
|
-
<td><code>*fields</code></td>
|
|
13876
14521
|
<td>
|
|
13877
|
-
|
|
14522
|
+
<code>*fields</code>
|
|
14523
|
+
</td>
|
|
14524
|
+
<td>
|
|
14525
|
+
<code>str</code>
|
|
13878
14526
|
</td>
|
|
13879
14527
|
<td>
|
|
13880
14528
|
<div class="doc-md-description">
|
|
@@ -13886,9 +14534,11 @@ in the Django <code>distinct()</code> documentation at https://docs.djangoprojec
|
|
|
13886
14534
|
</td>
|
|
13887
14535
|
</tr>
|
|
13888
14536
|
<tr class="doc-section-item">
|
|
13889
|
-
<td><code>flat</code></td>
|
|
13890
14537
|
<td>
|
|
13891
|
-
|
|
14538
|
+
<code>flat</code>
|
|
14539
|
+
</td>
|
|
14540
|
+
<td>
|
|
14541
|
+
<code>bool</code>
|
|
13892
14542
|
</td>
|
|
13893
14543
|
<td>
|
|
13894
14544
|
<div class="doc-md-description">
|
|
@@ -13901,9 +14551,11 @@ Defaults to False.</p>
|
|
|
13901
14551
|
</td>
|
|
13902
14552
|
</tr>
|
|
13903
14553
|
<tr class="doc-section-item">
|
|
13904
|
-
<td><code>named</code></td>
|
|
13905
14554
|
<td>
|
|
13906
|
-
|
|
14555
|
+
<code>named</code>
|
|
14556
|
+
</td>
|
|
14557
|
+
<td>
|
|
14558
|
+
<code>bool</code>
|
|
13907
14559
|
</td>
|
|
13908
14560
|
<td>
|
|
13909
14561
|
<div class="doc-md-description">
|
|
@@ -13929,7 +14581,7 @@ Defaults to False.</p>
|
|
|
13929
14581
|
<tbody>
|
|
13930
14582
|
<tr class="doc-section-item">
|
|
13931
14583
|
<td>
|
|
13932
|
-
<code><
|
|
14584
|
+
<code><span title="django.db.models.QuerySet">QuerySet</span></code>
|
|
13933
14585
|
</td>
|
|
13934
14586
|
<td>
|
|
13935
14587
|
<div class="doc-md-description">
|
|
@@ -13955,7 +14607,7 @@ Defaults to False.</p>
|
|
|
13955
14607
|
|
|
13956
14608
|
<div class="doc doc-contents ">
|
|
13957
14609
|
|
|
13958
|
-
|
|
14610
|
+
<p>Filter the QuerySet to return only objects on which the specified user has been granted the specified
|
|
13959
14611
|
permission.</p>
|
|
13960
14612
|
<p>:param user: User instance
|
|
13961
14613
|
:param action: The action which must be permitted (e.g. "view" for "dcim.view_location"); default is 'view'</p>
|
|
@@ -13985,10 +14637,15 @@ permission.</p>
|
|
|
13985
14637
|
|
|
13986
14638
|
<div class="doc doc-contents ">
|
|
13987
14639
|
<p class="doc doc-class-bases">
|
|
13988
|
-
Bases: <code><
|
|
14640
|
+
Bases: <code><span title="django.db.models.Model">Model</span></code></p>
|
|
14641
|
+
|
|
14642
|
+
|
|
14643
|
+
<p>Abstract mixin for enabling Saved View functionality to a given model class.</p>
|
|
14644
|
+
|
|
14645
|
+
|
|
14646
|
+
|
|
13989
14647
|
|
|
13990
14648
|
|
|
13991
|
-
<p>Abstract mixin for enabling Saved View functionality to a given model class.</p>
|
|
13992
14649
|
|
|
13993
14650
|
|
|
13994
14651
|
|
|
@@ -14024,10 +14681,10 @@ permission.</p>
|
|
|
14024
14681
|
|
|
14025
14682
|
<div class="doc doc-contents ">
|
|
14026
14683
|
<p class="doc doc-class-bases">
|
|
14027
|
-
Bases: <code><
|
|
14684
|
+
Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.models.fields.ForeignKeyLimitedByContentTypes" href="#nautobot.apps.models.ForeignKeyLimitedByContentTypes">ForeignKeyLimitedByContentTypes</a></code></p>
|
|
14028
14685
|
|
|
14029
14686
|
|
|
14030
|
-
|
|
14687
|
+
<p>Model database field that automatically limits custom choices.</p>
|
|
14031
14688
|
<p>The limit_choices_to for the field are automatically derived from:</p>
|
|
14032
14689
|
<div class="highlight"><pre><span></span><code>- the content-type to which the field is attached (e.g. `dcim.device`)
|
|
14033
14690
|
</code></pre></div>
|
|
@@ -14035,6 +14692,11 @@ permission.</p>
|
|
|
14035
14692
|
|
|
14036
14693
|
|
|
14037
14694
|
|
|
14695
|
+
|
|
14696
|
+
|
|
14697
|
+
|
|
14698
|
+
|
|
14699
|
+
|
|
14038
14700
|
<div class="doc doc-children">
|
|
14039
14701
|
|
|
14040
14702
|
|
|
@@ -14056,7 +14718,7 @@ permission.</p>
|
|
|
14056
14718
|
|
|
14057
14719
|
<div class="doc doc-contents ">
|
|
14058
14720
|
|
|
14059
|
-
|
|
14721
|
+
<p>Overload default so that we can assert that <code>.get_FOO_display</code> is
|
|
14060
14722
|
attached to any model that is using a <code>StatusField</code>.</p>
|
|
14061
14723
|
<p>Using <code>.contribute_to_class()</code> is how field objects get added to the model
|
|
14062
14724
|
at during the instance preparation. This is also where any custom model
|
|
@@ -14090,15 +14752,20 @@ having to define it on the model yourself.</p>
|
|
|
14090
14752
|
|
|
14091
14753
|
<div class="doc doc-contents ">
|
|
14092
14754
|
<p class="doc doc-class-bases">
|
|
14093
|
-
Bases: <code><
|
|
14755
|
+
Bases: <code><span title="django.db.models.Model">Model</span></code></p>
|
|
14094
14756
|
|
|
14095
14757
|
|
|
14096
|
-
|
|
14758
|
+
<p>Deprecated abstract base class for any model which may have statuses.</p>
|
|
14097
14759
|
<p>Just directly include a StatusField instead for any new models.</p>
|
|
14098
14760
|
|
|
14099
14761
|
|
|
14100
14762
|
|
|
14101
14763
|
|
|
14764
|
+
|
|
14765
|
+
|
|
14766
|
+
|
|
14767
|
+
|
|
14768
|
+
|
|
14102
14769
|
<div class="doc doc-children">
|
|
14103
14770
|
|
|
14104
14771
|
|
|
@@ -14130,10 +14797,15 @@ having to define it on the model yourself.</p>
|
|
|
14130
14797
|
|
|
14131
14798
|
<div class="doc doc-contents ">
|
|
14132
14799
|
<p class="doc doc-class-bases">
|
|
14133
|
-
Bases: <code><
|
|
14800
|
+
Bases: <code><span title="taggit.managers.TaggableManager">TaggableManager</span></code></p>
|
|
14801
|
+
|
|
14802
|
+
|
|
14803
|
+
<p>Override FormField method on taggit.managers.TaggableManager to match the Nautobot UI.</p>
|
|
14804
|
+
|
|
14805
|
+
|
|
14806
|
+
|
|
14134
14807
|
|
|
14135
14808
|
|
|
14136
|
-
<p>Override FormField method on taggit.managers.TaggableManager to match the Nautobot UI.</p>
|
|
14137
14809
|
|
|
14138
14810
|
|
|
14139
14811
|
|
|
@@ -14169,10 +14841,15 @@ having to define it on the model yourself.</p>
|
|
|
14169
14841
|
|
|
14170
14842
|
<div class="doc doc-contents ">
|
|
14171
14843
|
<p class="doc doc-class-bases">
|
|
14172
|
-
Bases: <code><
|
|
14844
|
+
Bases: <code><span title="taggit.managers._TaggableManager">_TaggableManager</span></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.models.managers.BaseManager" href="#nautobot.apps.models.BaseManager">BaseManager</a></code></p>
|
|
14845
|
+
|
|
14846
|
+
|
|
14847
|
+
<p>Manager class for model 'tags' fields.</p>
|
|
14848
|
+
|
|
14849
|
+
|
|
14850
|
+
|
|
14173
14851
|
|
|
14174
14852
|
|
|
14175
|
-
<p>Manager class for model 'tags' fields.</p>
|
|
14176
14853
|
|
|
14177
14854
|
|
|
14178
14855
|
|
|
@@ -14208,10 +14885,15 @@ having to define it on the model yourself.</p>
|
|
|
14208
14885
|
|
|
14209
14886
|
<div class="doc doc-contents ">
|
|
14210
14887
|
<p class="doc doc-class-bases">
|
|
14211
|
-
Bases: <code><
|
|
14888
|
+
Bases: <code><span title="tree_queries.query.TreeManager">TreeManager</span></code>, <code><span title="nautobot.core.models.BaseManager.from_queryset">from_queryset</span>(<a class="autorefs autorefs-internal" title="nautobot.core.models.tree_queries.TreeQuerySet" href="#nautobot.apps.models.TreeQuerySet">TreeQuerySet</a>)</code></p>
|
|
14889
|
+
|
|
14890
|
+
|
|
14891
|
+
<p>Extend django-tree-queries' TreeManager to incorporate RestrictedQuerySet.</p>
|
|
14892
|
+
|
|
14893
|
+
|
|
14894
|
+
|
|
14212
14895
|
|
|
14213
14896
|
|
|
14214
|
-
<p>Extend django-tree-queries' TreeManager to incorporate RestrictedQuerySet.</p>
|
|
14215
14897
|
|
|
14216
14898
|
|
|
14217
14899
|
|
|
@@ -14240,7 +14922,7 @@ having to define it on the model yourself.</p>
|
|
|
14240
14922
|
|
|
14241
14923
|
<div class="doc doc-contents ">
|
|
14242
14924
|
|
|
14243
|
-
|
|
14925
|
+
<p>Cacheable version of <code>TreeQuerySet.max_tree_depth()</code>.</p>
|
|
14244
14926
|
<p>Generally TreeManagers are persistent objects while TreeQuerySets are not, hence the difference in behavior.</p>
|
|
14245
14927
|
</div>
|
|
14246
14928
|
|
|
@@ -14269,10 +14951,15 @@ having to define it on the model yourself.</p>
|
|
|
14269
14951
|
|
|
14270
14952
|
<div class="doc doc-contents ">
|
|
14271
14953
|
<p class="doc doc-class-bases">
|
|
14272
|
-
Bases: <code><
|
|
14954
|
+
Bases: <code><span title="tree_queries.models.TreeNode">TreeNode</span></code></p>
|
|
14955
|
+
|
|
14956
|
+
|
|
14957
|
+
<p>Nautobot-specific base class for models that exist in a self-referential tree.</p>
|
|
14958
|
+
|
|
14959
|
+
|
|
14960
|
+
|
|
14273
14961
|
|
|
14274
14962
|
|
|
14275
|
-
<p>Nautobot-specific base class for models that exist in a self-referential tree.</p>
|
|
14276
14963
|
|
|
14277
14964
|
|
|
14278
14965
|
|
|
@@ -14301,7 +14988,7 @@ having to define it on the model yourself.</p>
|
|
|
14301
14988
|
|
|
14302
14989
|
<div class="doc doc-contents ">
|
|
14303
14990
|
|
|
14304
|
-
|
|
14991
|
+
<p>By default, TreeModels display their full ancestry for clarity.</p>
|
|
14305
14992
|
<p>As this is an expensive thing to calculate, we cache it for a few seconds in the case of repeated lookups.</p>
|
|
14306
14993
|
</div>
|
|
14307
14994
|
|
|
@@ -14330,10 +15017,15 @@ having to define it on the model yourself.</p>
|
|
|
14330
15017
|
|
|
14331
15018
|
<div class="doc doc-contents ">
|
|
14332
15019
|
<p class="doc doc-class-bases">
|
|
14333
|
-
Bases: <code><
|
|
15020
|
+
Bases: <code><span title="tree_queries.query.TreeQuerySet">TreeQuerySet</span></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.models.querysets.RestrictedQuerySet" href="#nautobot.apps.models.RestrictedQuerySet">RestrictedQuerySet</a></code></p>
|
|
15021
|
+
|
|
15022
|
+
|
|
15023
|
+
<p>Combine django-tree-queries' TreeQuerySet with our RestrictedQuerySet for permissions enforcement.</p>
|
|
15024
|
+
|
|
15025
|
+
|
|
15026
|
+
|
|
14334
15027
|
|
|
14335
15028
|
|
|
14336
|
-
<p>Combine django-tree-queries' TreeQuerySet with our RestrictedQuerySet for permissions enforcement.</p>
|
|
14337
15029
|
|
|
14338
15030
|
|
|
14339
15031
|
|
|
@@ -14359,7 +15051,7 @@ having to define it on the model yourself.</p>
|
|
|
14359
15051
|
|
|
14360
15052
|
<div class="doc doc-contents ">
|
|
14361
15053
|
|
|
14362
|
-
|
|
15054
|
+
<p>Custom ancestors method for optimization purposes.</p>
|
|
14363
15055
|
<p>Dynamically computes ancestors either through the tree or through the <code>parent</code> foreign key depending on whether
|
|
14364
15056
|
tree fields are present on <code>of</code>.</p>
|
|
14365
15057
|
|
|
@@ -14378,7 +15070,7 @@ tree fields are present on <code>of</code>.</p>
|
|
|
14378
15070
|
|
|
14379
15071
|
<div class="doc doc-contents ">
|
|
14380
15072
|
|
|
14381
|
-
|
|
15073
|
+
<p>Get the maximum tree depth of any node in this queryset.</p>
|
|
14382
15074
|
<p>In most cases you should use TreeManager.max_depth instead as it's cached and this is not.</p>
|
|
14383
15075
|
<p>root - depth 0
|
|
14384
15076
|
\
|
|
@@ -14414,15 +15106,20 @@ This is probably a bug, we should really return -1 in the case of an empty query
|
|
|
14414
15106
|
|
|
14415
15107
|
<div class="doc doc-contents ">
|
|
14416
15108
|
<p class="doc doc-class-bases">
|
|
14417
|
-
Bases: <code><
|
|
15109
|
+
Bases: <code><span title="django.core.validators.RegexValidator">RegexValidator</span></code></p>
|
|
14418
15110
|
|
|
14419
15111
|
|
|
14420
|
-
|
|
15112
|
+
<p>Checks that the value is a valid regular expression.</p>
|
|
14421
15113
|
<p>Don't confuse this with <code>RegexValidator</code>, which <em>uses</em> a regex to validate a value.</p>
|
|
14422
15114
|
|
|
14423
15115
|
|
|
14424
15116
|
|
|
14425
15117
|
|
|
15118
|
+
|
|
15119
|
+
|
|
15120
|
+
|
|
15121
|
+
|
|
15122
|
+
|
|
14426
15123
|
<div class="doc doc-children">
|
|
14427
15124
|
|
|
14428
15125
|
|
|
@@ -14454,10 +15151,15 @@ This is probably a bug, we should really return -1 in the case of an empty query
|
|
|
14454
15151
|
|
|
14455
15152
|
<div class="doc doc-contents ">
|
|
14456
15153
|
<p class="doc doc-class-bases">
|
|
14457
|
-
Bases: <code><
|
|
15154
|
+
Bases: <code><span title="django.db.models.BinaryField">BinaryField</span></code></p>
|
|
15155
|
+
|
|
15156
|
+
|
|
15157
|
+
<p>IP network address</p>
|
|
15158
|
+
|
|
15159
|
+
|
|
15160
|
+
|
|
14458
15161
|
|
|
14459
15162
|
|
|
14460
|
-
<p>IP network address</p>
|
|
14461
15163
|
|
|
14462
15164
|
|
|
14463
15165
|
|
|
@@ -14483,7 +15185,7 @@ This is probably a bug, we should really return -1 in the case of an empty query
|
|
|
14483
15185
|
|
|
14484
15186
|
<div class="doc doc-contents ">
|
|
14485
15187
|
|
|
14486
|
-
|
|
15188
|
+
<p>Returns the correct field type for a given database vendor.</p>
|
|
14487
15189
|
|
|
14488
15190
|
</div>
|
|
14489
15191
|
|
|
@@ -14500,7 +15202,7 @@ This is probably a bug, we should really return -1 in the case of an empty query
|
|
|
14500
15202
|
|
|
14501
15203
|
<div class="doc doc-contents ">
|
|
14502
15204
|
|
|
14503
|
-
|
|
15205
|
+
<p>Converts DB (varbinary) to Python (str).</p>
|
|
14504
15206
|
|
|
14505
15207
|
</div>
|
|
14506
15208
|
|
|
@@ -14517,7 +15219,7 @@ This is probably a bug, we should really return -1 in the case of an empty query
|
|
|
14517
15219
|
|
|
14518
15220
|
<div class="doc doc-contents ">
|
|
14519
15221
|
|
|
14520
|
-
|
|
15222
|
+
<p>Converts Python (str) to DB (varbinary).</p>
|
|
14521
15223
|
|
|
14522
15224
|
</div>
|
|
14523
15225
|
|
|
@@ -14534,7 +15236,7 @@ This is probably a bug, we should really return -1 in the case of an empty query
|
|
|
14534
15236
|
|
|
14535
15237
|
<div class="doc doc-contents ">
|
|
14536
15238
|
|
|
14537
|
-
|
|
15239
|
+
<p>Converts <code>value</code> to Python (str).</p>
|
|
14538
15240
|
|
|
14539
15241
|
</div>
|
|
14540
15242
|
|
|
@@ -14551,7 +15253,7 @@ This is probably a bug, we should really return -1 in the case of an empty query
|
|
|
14551
15253
|
|
|
14552
15254
|
<div class="doc doc-contents ">
|
|
14553
15255
|
|
|
14554
|
-
|
|
15256
|
+
<p>IPField is serialized as str(IPAddress())</p>
|
|
14555
15257
|
|
|
14556
15258
|
</div>
|
|
14557
15259
|
|
|
@@ -14577,7 +15279,7 @@ This is probably a bug, we should really return -1 in the case of an empty query
|
|
|
14577
15279
|
|
|
14578
15280
|
<div class="doc doc-contents ">
|
|
14579
15281
|
|
|
14580
|
-
|
|
15282
|
+
<p>Generate an efficient, human-friendly string from a set of integers. Intended for use with ArrayField.
|
|
14581
15283
|
For example:
|
|
14582
15284
|
[0, 1, 2, 10, 14, 15, 16] => "0-2, 10, 14-16"</p>
|
|
14583
15285
|
|
|
@@ -14596,7 +15298,7 @@ For example:
|
|
|
14596
15298
|
|
|
14597
15299
|
<div class="doc doc-contents ">
|
|
14598
15300
|
|
|
14599
|
-
|
|
15301
|
+
<p>Convert the given list of natural key values to a single URL-path-usable string.</p>
|
|
14600
15302
|
<ul>
|
|
14601
15303
|
<li>Non-URL-safe characters are percent-encoded.</li>
|
|
14602
15304
|
<li>Null (<code>None</code>) values are percent-encoded as a literal null character <code>%00</code>.</li>
|
|
@@ -14618,7 +15320,7 @@ For example:
|
|
|
14618
15320
|
|
|
14619
15321
|
<div class="doc doc-contents ">
|
|
14620
15322
|
|
|
14621
|
-
|
|
15323
|
+
<p>Convert the given list of natural key <code>values</code> to a single human-readable string.</p>
|
|
14622
15324
|
<p>If <code>pk</code> is provided, it will be appended to the end of the natural slug. If the PK is a UUID,
|
|
14623
15325
|
only the first four characters will be appended.</p>
|
|
14624
15326
|
<p>A third-party lossy <code>slugify()</code> function is used to convert each natural key value to a
|
|
@@ -14649,7 +15351,7 @@ slug, and then they are joined with an underscore.</p>
|
|
|
14649
15351
|
|
|
14650
15352
|
<div class="doc doc-contents ">
|
|
14651
15353
|
|
|
14652
|
-
|
|
15354
|
+
<p>Return a Subquery suitable for annotating a child object count.</p>
|
|
14653
15355
|
|
|
14654
15356
|
|
|
14655
15357
|
<p><span class="doc-section-title">Parameters:</span></p>
|
|
@@ -14664,9 +15366,11 @@ slug, and then they are joined with an underscore.</p>
|
|
|
14664
15366
|
</thead>
|
|
14665
15367
|
<tbody>
|
|
14666
15368
|
<tr class="doc-section-item">
|
|
14667
|
-
<td><code>model</code></td>
|
|
14668
15369
|
<td>
|
|
14669
|
-
|
|
15370
|
+
<code>model</code>
|
|
15371
|
+
</td>
|
|
15372
|
+
<td>
|
|
15373
|
+
<code>Model</code>
|
|
14670
15374
|
</td>
|
|
14671
15375
|
<td>
|
|
14672
15376
|
<div class="doc-md-description">
|
|
@@ -14678,9 +15382,11 @@ slug, and then they are joined with an underscore.</p>
|
|
|
14678
15382
|
</td>
|
|
14679
15383
|
</tr>
|
|
14680
15384
|
<tr class="doc-section-item">
|
|
14681
|
-
<td><code>field</code></td>
|
|
14682
15385
|
<td>
|
|
14683
|
-
|
|
15386
|
+
<code>field</code>
|
|
15387
|
+
</td>
|
|
15388
|
+
<td>
|
|
15389
|
+
<code>str</code>
|
|
14684
15390
|
</td>
|
|
14685
15391
|
<td>
|
|
14686
15392
|
<div class="doc-md-description">
|
|
@@ -14692,9 +15398,11 @@ slug, and then they are joined with an underscore.</p>
|
|
|
14692
15398
|
</td>
|
|
14693
15399
|
</tr>
|
|
14694
15400
|
<tr class="doc-section-item">
|
|
14695
|
-
<td><code>filter_dict</code></td>
|
|
14696
15401
|
<td>
|
|
14697
|
-
|
|
15402
|
+
<code>filter_dict</code>
|
|
15403
|
+
</td>
|
|
15404
|
+
<td>
|
|
15405
|
+
<code>dict</code>
|
|
14698
15406
|
</td>
|
|
14699
15407
|
<td>
|
|
14700
15408
|
<div class="doc-md-description">
|
|
@@ -14706,9 +15414,11 @@ slug, and then they are joined with an underscore.</p>
|
|
|
14706
15414
|
</td>
|
|
14707
15415
|
</tr>
|
|
14708
15416
|
<tr class="doc-section-item">
|
|
14709
|
-
<td><code>manager_name</code></td>
|
|
14710
15417
|
<td>
|
|
14711
|
-
|
|
15418
|
+
<code>manager_name</code>
|
|
15419
|
+
</td>
|
|
15420
|
+
<td>
|
|
15421
|
+
<code>str</code>
|
|
14712
15422
|
</td>
|
|
14713
15423
|
<td>
|
|
14714
15424
|
<div class="doc-md-description">
|
|
@@ -14737,7 +15447,7 @@ slug, and then they are joined with an underscore.</p>
|
|
|
14737
15447
|
|
|
14738
15448
|
<div class="doc doc-contents ">
|
|
14739
15449
|
|
|
14740
|
-
|
|
15450
|
+
<p>Convert the given composite-key string back to a list of distinct values.</p>
|
|
14741
15451
|
<ul>
|
|
14742
15452
|
<li>Percent-encoded characters are converted back to their raw values</li>
|
|
14743
15453
|
<li>Single literal null characters <code>%00</code> are converted back to a Python <code>None</code>.</li>
|
|
@@ -14759,7 +15469,7 @@ slug, and then they are joined with an underscore.</p>
|
|
|
14759
15469
|
|
|
14760
15470
|
<div class="doc doc-contents ">
|
|
14761
15471
|
|
|
14762
|
-
|
|
15472
|
+
<p>Decorator used to register extras provided features to a model</p>
|
|
14763
15473
|
|
|
14764
15474
|
</div>
|
|
14765
15475
|
|
|
@@ -14776,7 +15486,7 @@ slug, and then they are joined with an underscore.</p>
|
|
|
14776
15486
|
|
|
14777
15487
|
<div class="doc doc-contents ">
|
|
14778
15488
|
|
|
14779
|
-
|
|
15489
|
+
<p>Find all models that have fields with the specified names and satisfy the additional constraints,
|
|
14780
15490
|
and return them grouped by app.</p>
|
|
14781
15491
|
|
|
14782
15492
|
|
|
@@ -14792,9 +15502,11 @@ and return them grouped by app.</p>
|
|
|
14792
15502
|
</thead>
|
|
14793
15503
|
<tbody>
|
|
14794
15504
|
<tr class="doc-section-item">
|
|
14795
|
-
<td><code>app_models</code></td>
|
|
14796
15505
|
<td>
|
|
14797
|
-
|
|
15506
|
+
<code>app_models</code>
|
|
15507
|
+
</td>
|
|
15508
|
+
<td>
|
|
15509
|
+
<code>list[<a class="autorefs autorefs-internal" title="nautobot.core.models.BaseModel" href="#nautobot.apps.models.BaseModel">BaseModel</a>]</code>
|
|
14798
15510
|
</td>
|
|
14799
15511
|
<td>
|
|
14800
15512
|
<div class="doc-md-description">
|
|
@@ -14806,9 +15518,11 @@ and return them grouped by app.</p>
|
|
|
14806
15518
|
</td>
|
|
14807
15519
|
</tr>
|
|
14808
15520
|
<tr class="doc-section-item">
|
|
14809
|
-
<td><code>field_names</code></td>
|
|
14810
15521
|
<td>
|
|
14811
|
-
|
|
15522
|
+
<code>field_names</code>
|
|
15523
|
+
</td>
|
|
15524
|
+
<td>
|
|
15525
|
+
<code>list[str]</code>
|
|
14812
15526
|
</td>
|
|
14813
15527
|
<td>
|
|
14814
15528
|
<div class="doc-md-description">
|
|
@@ -14820,9 +15534,11 @@ and return them grouped by app.</p>
|
|
|
14820
15534
|
</td>
|
|
14821
15535
|
</tr>
|
|
14822
15536
|
<tr class="doc-section-item">
|
|
14823
|
-
<td><code>field_attributes</code></td>
|
|
14824
15537
|
<td>
|
|
14825
|
-
|
|
15538
|
+
<code>field_attributes</code>
|
|
15539
|
+
</td>
|
|
15540
|
+
<td>
|
|
15541
|
+
<code>dict</code>
|
|
14826
15542
|
</td>
|
|
14827
15543
|
<td>
|
|
14828
15544
|
<div class="doc-md-description">
|
|
@@ -14834,9 +15550,11 @@ and return them grouped by app.</p>
|
|
|
14834
15550
|
</td>
|
|
14835
15551
|
</tr>
|
|
14836
15552
|
<tr class="doc-section-item">
|
|
14837
|
-
<td><code>additional_constraints</code></td>
|
|
14838
15553
|
<td>
|
|
14839
|
-
|
|
15554
|
+
<code>additional_constraints</code>
|
|
15555
|
+
</td>
|
|
15556
|
+
<td>
|
|
15557
|
+
<code>dict</code>
|
|
14840
15558
|
</td>
|
|
14841
15559
|
<td>
|
|
14842
15560
|
<div class="doc-md-description">
|
|
@@ -14870,7 +15588,7 @@ and return them grouped by app.</p>
|
|
|
14870
15588
|
|
|
14871
15589
|
<div class="doc doc-contents ">
|
|
14872
15590
|
|
|
14873
|
-
|
|
15591
|
+
<p>Get a list of all non-abstract models that inherit from the given base_class.</p>
|
|
14874
15592
|
|
|
14875
15593
|
</div>
|
|
14876
15594
|
|
|
@@ -14887,7 +15605,7 @@ and return them grouped by app.</p>
|
|
|
14887
15605
|
|
|
14888
15606
|
<div class="doc doc-contents ">
|
|
14889
15607
|
|
|
14890
|
-
|
|
15608
|
+
<p>Return the Global namespace.</p>
|
|
14891
15609
|
|
|
14892
15610
|
</div>
|
|
14893
15611
|
|
|
@@ -14904,7 +15622,7 @@ and return them grouped by app.</p>
|
|
|
14904
15622
|
|
|
14905
15623
|
<div class="doc doc-contents ">
|
|
14906
15624
|
|
|
14907
|
-
|
|
15625
|
+
<p>Return the PK of the Global namespace for use in default value for foreign keys.</p>
|
|
14908
15626
|
|
|
14909
15627
|
</div>
|
|
14910
15628
|
|
|
@@ -14921,7 +15639,7 @@ and return them grouped by app.</p>
|
|
|
14921
15639
|
|
|
14922
15640
|
<div class="doc doc-contents ">
|
|
14923
15641
|
|
|
14924
|
-
|
|
15642
|
+
<p>Return True if the instance can have Tags assigned to it; False otherwise.</p>
|
|
14925
15643
|
|
|
14926
15644
|
</div>
|
|
14927
15645
|
|
|
@@ -14938,7 +15656,7 @@ and return them grouped by app.</p>
|
|
|
14938
15656
|
|
|
14939
15657
|
<div class="doc doc-contents ">
|
|
14940
15658
|
|
|
14941
|
-
|
|
15659
|
+
<p>Take an alphanumeric string and prepend all integers to <code>integer_places</code> places to ensure the strings
|
|
14942
15660
|
are ordered naturally. For example:</p>
|
|
14943
15661
|
<div class="highlight"><pre><span></span><code>location9router21
|
|
14944
15662
|
location10router4
|
|
@@ -14968,7 +15686,7 @@ location00000010router00000019
|
|
|
14968
15686
|
|
|
14969
15687
|
<div class="doc doc-contents ">
|
|
14970
15688
|
|
|
14971
|
-
|
|
15689
|
+
<p>Similar in nature to naturalize(), but takes into account a particular naming format adapted from the old
|
|
14972
15690
|
InterfaceManager.</p>
|
|
14973
15691
|
<p>:param value: The value to be naturalized
|
|
14974
15692
|
:param max_length: The maximum length of the returned string. Characters beyond this length will be stripped.</p>
|
|
@@ -14988,7 +15706,7 @@ InterfaceManager.</p>
|
|
|
14988
15706
|
|
|
14989
15707
|
<div class="doc doc-contents ">
|
|
14990
15708
|
|
|
14991
|
-
|
|
15709
|
+
<p>Given a <code>Q</code> object, display it in a more human-readable format.</p>
|
|
14992
15710
|
|
|
14993
15711
|
|
|
14994
15712
|
<p><span class="doc-section-title">Parameters:</span></p>
|
|
@@ -15003,9 +15721,11 @@ InterfaceManager.</p>
|
|
|
15003
15721
|
</thead>
|
|
15004
15722
|
<tbody>
|
|
15005
15723
|
<tr class="doc-section-item">
|
|
15006
|
-
<td><code>query</code></td>
|
|
15007
15724
|
<td>
|
|
15008
|
-
|
|
15725
|
+
<code>query</code>
|
|
15726
|
+
</td>
|
|
15727
|
+
<td>
|
|
15728
|
+
<code>Q</code>
|
|
15009
15729
|
</td>
|
|
15010
15730
|
<td>
|
|
15011
15731
|
<div class="doc-md-description">
|
|
@@ -15031,7 +15751,7 @@ InterfaceManager.</p>
|
|
|
15031
15751
|
<tbody>
|
|
15032
15752
|
<tr class="doc-section-item">
|
|
15033
15753
|
<td>
|
|
15034
|
-
<code
|
|
15754
|
+
<code>str</code>
|
|
15035
15755
|
</td>
|
|
15036
15756
|
<td>
|
|
15037
15757
|
<div class="doc-md-description">
|
|
@@ -15077,7 +15797,7 @@ InterfaceManager.</p>
|
|
|
15077
15797
|
|
|
15078
15798
|
<div class="doc doc-contents ">
|
|
15079
15799
|
|
|
15080
|
-
|
|
15800
|
+
<p>Return a generic JSON representation of an object using Django's built-in serializer. (This is used for things like
|
|
15081
15801
|
change logging, not the REST API.) Optionally include a dictionary to supplement the object data. A list of keys
|
|
15082
15802
|
can be provided to exclude them from the returned dictionary. Private fields (prefaced with an underscore) are
|
|
15083
15803
|
implicitly excluded.</p>
|
|
@@ -15097,7 +15817,7 @@ implicitly excluded.</p>
|
|
|
15097
15817
|
|
|
15098
15818
|
<div class="doc doc-contents ">
|
|
15099
15819
|
|
|
15100
|
-
|
|
15820
|
+
<p>Return a JSON serialized representation of an object using obj's serializer.</p>
|
|
15101
15821
|
|
|
15102
15822
|
</div>
|
|
15103
15823
|
|
|
@@ -15114,7 +15834,7 @@ implicitly excluded.</p>
|
|
|
15114
15834
|
|
|
15115
15835
|
<div class="doc doc-contents ">
|
|
15116
15836
|
|
|
15117
|
-
|
|
15837
|
+
<p>Custom slugify_function - use underscores instead of dashes; resulting slug can be used as a variable name,
|
|
15118
15838
|
as well as a graphql safe string.
|
|
15119
15839
|
Note: If content starts with a non graphql-safe character, e.g. a digit
|
|
15120
15840
|
This method will prepend an "a" to content to make it graphql-safe
|
|
@@ -15136,7 +15856,7 @@ e.g:
|
|
|
15136
15856
|
|
|
15137
15857
|
<div class="doc doc-contents ">
|
|
15138
15858
|
|
|
15139
|
-
|
|
15859
|
+
<p>Custom slugify_function - convert '.' to '-' instead of removing dots outright.</p>
|
|
15140
15860
|
|
|
15141
15861
|
</div>
|
|
15142
15862
|
|
|
@@ -15292,7 +16012,7 @@ e.g:
|
|
|
15292
16012
|
</div>
|
|
15293
16013
|
|
|
15294
16014
|
|
|
15295
|
-
<script id="__config" type="application/json">{"base": "../../..", "features": ["content.code.copy", "content.tabs.link", "navigation.footer", "navigation.tabs", "navigation.tabs.sticky", "navigation.tracking", "search.highlight", "search.share", "search.suggest"], "search": "../../../assets/javascripts/workers/search.6ce7567c.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
|
|
16015
|
+
<script id="__config" type="application/json">{"base": "../../..", "features": ["content.code.annotate", "content.code.copy", "content.tabs.link", "navigation.footer", "navigation.tabs", "navigation.tabs.sticky", "navigation.tracking", "search.highlight", "search.share", "search.suggest"], "search": "../../../assets/javascripts/workers/search.6ce7567c.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
|
|
15296
16016
|
|
|
15297
16017
|
|
|
15298
16018
|
<script src="../../../assets/javascripts/bundle.88dd0f4e.min.js"></script>
|