nautobot 2.4.0b1__py3-none-any.whl → 2.4.1__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.

Files changed (601) hide show
  1. nautobot/apps/__init__.py +1 -1
  2. nautobot/apps/api.py +8 -8
  3. nautobot/apps/change_logging.py +2 -2
  4. nautobot/apps/choices.py +4 -4
  5. nautobot/apps/events.py +3 -3
  6. nautobot/apps/factory.py +2 -2
  7. nautobot/apps/filters.py +1 -1
  8. nautobot/apps/forms.py +20 -20
  9. nautobot/apps/graphql.py +2 -2
  10. nautobot/apps/jobs.py +8 -8
  11. nautobot/apps/models.py +19 -19
  12. nautobot/apps/tables.py +1 -1
  13. nautobot/apps/testing.py +10 -10
  14. nautobot/apps/ui.py +2 -2
  15. nautobot/apps/utils.py +7 -7
  16. nautobot/apps/views.py +7 -7
  17. nautobot/circuits/api/serializers.py +1 -0
  18. nautobot/circuits/api/views.py +4 -8
  19. nautobot/circuits/tables.py +2 -1
  20. nautobot/circuits/templates/circuits/circuit_create.html +1 -7
  21. nautobot/circuits/views.py +3 -3
  22. nautobot/cloud/api/views.py +6 -10
  23. nautobot/cloud/models.py +1 -1
  24. nautobot/cloud/views.py +0 -16
  25. nautobot/core/api/constants.py +11 -0
  26. nautobot/core/api/fields.py +5 -5
  27. nautobot/core/api/filter_backends.py +3 -9
  28. nautobot/core/api/schema.py +13 -2
  29. nautobot/core/api/serializers.py +40 -34
  30. nautobot/core/api/views.py +56 -4
  31. nautobot/core/celery/log.py +4 -4
  32. nautobot/core/celery/schedulers.py +2 -2
  33. nautobot/core/choices.py +2 -2
  34. nautobot/core/events/__init__.py +3 -3
  35. nautobot/core/filters.py +67 -35
  36. nautobot/core/forms/__init__.py +19 -19
  37. nautobot/core/forms/fields.py +14 -11
  38. nautobot/core/forms/forms.py +33 -2
  39. nautobot/core/graphql/types.py +1 -1
  40. nautobot/core/jobs/__init__.py +28 -7
  41. nautobot/core/jobs/bulk_actions.py +285 -0
  42. nautobot/core/jobs/cleanup.py +48 -12
  43. nautobot/core/jobs/groups.py +1 -1
  44. nautobot/core/management/commands/validate_models.py +1 -1
  45. nautobot/core/models/__init__.py +3 -1
  46. nautobot/core/models/query_functions.py +2 -2
  47. nautobot/core/models/tree_queries.py +6 -3
  48. nautobot/core/settings.py +29 -2
  49. nautobot/core/settings.yaml +21 -0
  50. nautobot/core/tables.py +79 -61
  51. nautobot/core/templates/about.html +67 -0
  52. nautobot/core/templates/inc/media.html +3 -0
  53. nautobot/core/templates/inc/nav_menu.html +1 -0
  54. nautobot/core/templates/inc/tenancy_form_panel.html +9 -0
  55. nautobot/core/templates/inc/tenant_table_row.html +11 -0
  56. nautobot/core/templates/nautobot_config.py.j2 +13 -0
  57. nautobot/core/templates/search.html +7 -0
  58. nautobot/core/templates/utilities/render_jinja2.html +1 -1
  59. nautobot/core/templates/utilities/templatetags/tag.html +1 -1
  60. nautobot/core/templates/utilities/theme_preview.html +7 -0
  61. nautobot/core/templatetags/helpers.py +11 -2
  62. nautobot/core/testing/__init__.py +8 -8
  63. nautobot/core/testing/api.py +170 -15
  64. nautobot/core/testing/filters.py +45 -10
  65. nautobot/core/testing/forms.py +2 -0
  66. nautobot/core/testing/integration.py +86 -4
  67. nautobot/core/testing/mixins.py +7 -2
  68. nautobot/core/testing/views.py +44 -29
  69. nautobot/core/tests/integration/test_app_home.py +0 -1
  70. nautobot/core/tests/integration/test_app_navbar.py +0 -1
  71. nautobot/core/tests/integration/test_filters.py +0 -2
  72. nautobot/core/tests/integration/test_home.py +0 -1
  73. nautobot/core/tests/integration/test_navbar.py +0 -1
  74. nautobot/core/tests/integration/test_view_authentication.py +1 -0
  75. nautobot/core/tests/runner.py +1 -1
  76. nautobot/core/tests/test_api.py +98 -1
  77. nautobot/core/tests/test_csv.py +25 -3
  78. nautobot/core/tests/test_filters.py +209 -246
  79. nautobot/core/tests/test_forms.py +1 -0
  80. nautobot/core/tests/test_jobs.py +460 -1
  81. nautobot/core/tests/test_models.py +9 -0
  82. nautobot/core/tests/test_settings_schema.py +7 -0
  83. nautobot/core/tests/test_tables.py +100 -0
  84. nautobot/core/tests/test_utils.py +63 -1
  85. nautobot/core/tests/test_views.py +30 -3
  86. nautobot/core/ui/nav.py +1 -0
  87. nautobot/core/ui/object_detail.py +15 -1
  88. nautobot/core/urls.py +11 -0
  89. nautobot/core/utils/lookup.py +11 -8
  90. nautobot/core/utils/querysets.py +64 -0
  91. nautobot/core/utils/requests.py +24 -9
  92. nautobot/core/views/__init__.py +42 -0
  93. nautobot/core/views/generic.py +131 -197
  94. nautobot/core/views/mixins.py +126 -38
  95. nautobot/core/views/renderers.py +6 -6
  96. nautobot/dcim/api/serializers.py +56 -64
  97. nautobot/dcim/api/views.py +47 -113
  98. nautobot/dcim/constants.py +6 -13
  99. nautobot/dcim/factory.py +6 -1
  100. nautobot/dcim/filters/__init__.py +31 -2
  101. nautobot/dcim/forms.py +36 -17
  102. nautobot/dcim/graphql/types.py +2 -2
  103. nautobot/dcim/migrations/0067_controllermanageddevicegroup_tenant.py +25 -0
  104. nautobot/dcim/models/__init__.py +1 -1
  105. nautobot/dcim/models/device_component_templates.py +2 -2
  106. nautobot/dcim/models/device_components.py +22 -20
  107. nautobot/dcim/models/devices.py +10 -1
  108. nautobot/dcim/models/locations.py +3 -3
  109. nautobot/dcim/models/power.py +6 -5
  110. nautobot/dcim/models/racks.py +4 -4
  111. nautobot/dcim/tables/__init__.py +3 -3
  112. nautobot/dcim/tables/devices.py +7 -5
  113. nautobot/dcim/tables/devicetypes.py +2 -2
  114. nautobot/dcim/tables/racks.py +1 -1
  115. nautobot/dcim/templates/dcim/controller_create.html +1 -7
  116. nautobot/dcim/templates/dcim/controller_retrieve.html +1 -9
  117. nautobot/dcim/templates/dcim/controllermanageddevicegroup_create.html +2 -0
  118. nautobot/dcim/templates/dcim/controllermanageddevicegroup_retrieve.html +5 -0
  119. nautobot/dcim/templates/dcim/device.html +1 -9
  120. nautobot/dcim/templates/dcim/device_edit.html +36 -37
  121. nautobot/dcim/templates/dcim/location.html +1 -9
  122. nautobot/dcim/templates/dcim/location_edit.html +1 -7
  123. nautobot/dcim/templates/dcim/rack.html +1 -9
  124. nautobot/dcim/templates/dcim/rack_edit.html +1 -7
  125. nautobot/dcim/templates/dcim/rackreservation.html +1 -9
  126. nautobot/dcim/templates/dcim/virtualdevicecontext_retrieve.html +1 -9
  127. nautobot/dcim/templates/dcim/virtualdevicecontext_update.html +1 -7
  128. nautobot/dcim/tests/integration/test_controller.py +62 -0
  129. nautobot/dcim/tests/integration/test_controller_managed_device_group.py +71 -0
  130. nautobot/dcim/tests/integration/test_device_bulk_delete.py +189 -0
  131. nautobot/dcim/tests/integration/test_device_bulk_edit.py +181 -0
  132. nautobot/dcim/tests/test_api.py +16 -5
  133. nautobot/dcim/tests/test_filters.py +33 -0
  134. nautobot/dcim/tests/test_forms.py +51 -2
  135. nautobot/dcim/tests/test_graphql.py +52 -0
  136. nautobot/dcim/tests/test_jobs.py +118 -0
  137. nautobot/dcim/tests/test_models.py +52 -9
  138. nautobot/dcim/tests/test_views.py +21 -83
  139. nautobot/dcim/views.py +1 -13
  140. nautobot/extras/api/customfields.py +2 -2
  141. nautobot/extras/api/serializers.py +90 -85
  142. nautobot/extras/api/views.py +22 -27
  143. nautobot/extras/constants.py +2 -0
  144. nautobot/extras/filters/__init__.py +8 -6
  145. nautobot/extras/forms/base.py +2 -2
  146. nautobot/extras/forms/forms.py +139 -31
  147. nautobot/extras/forms/mixins.py +14 -6
  148. nautobot/extras/group_sync.py +3 -3
  149. nautobot/extras/health_checks.py +1 -2
  150. nautobot/extras/jobs.py +85 -18
  151. nautobot/extras/managers.py +3 -1
  152. nautobot/extras/migrations/0018_joblog_data_migration.py +7 -9
  153. nautobot/extras/migrations/0120_job_is_singleton_job_is_singleton_override.py +22 -0
  154. nautobot/extras/migrations/0121_alter_team_contacts.py +17 -0
  155. nautobot/extras/models/__init__.py +1 -1
  156. nautobot/extras/models/contacts.py +1 -1
  157. nautobot/extras/models/customfields.py +12 -11
  158. nautobot/extras/models/groups.py +11 -9
  159. nautobot/extras/models/jobs.py +23 -4
  160. nautobot/extras/models/models.py +2 -2
  161. nautobot/extras/plugins/__init__.py +13 -2
  162. nautobot/extras/plugins/marketplace_manifest.yml +84 -79
  163. nautobot/extras/plugins/tables.py +16 -14
  164. nautobot/extras/plugins/views.py +65 -69
  165. nautobot/extras/registry.py +1 -1
  166. nautobot/extras/secrets/__init__.py +2 -2
  167. nautobot/extras/tables.py +7 -5
  168. nautobot/extras/templates/extras/dynamicgroup.html +1 -9
  169. nautobot/extras/templates/extras/job_detail.html +16 -0
  170. nautobot/extras/templates/extras/job_edit.html +1 -0
  171. nautobot/extras/templates/extras/jobqueue_retrieve.html +1 -9
  172. nautobot/extras/templates/extras/marketplace.html +29 -11
  173. nautobot/extras/templates/extras/plugin_detail.html +32 -15
  174. nautobot/extras/templates/extras/plugins_tiles.html +21 -10
  175. nautobot/extras/templatetags/job_buttons.py +4 -4
  176. nautobot/extras/test_jobs/api_test_job.py +1 -1
  177. nautobot/extras/test_jobs/atomic_transaction.py +2 -2
  178. nautobot/extras/test_jobs/dry_run.py +1 -1
  179. nautobot/extras/test_jobs/fail.py +5 -5
  180. nautobot/extras/test_jobs/file_output.py +1 -1
  181. nautobot/extras/test_jobs/file_upload_fail.py +1 -1
  182. nautobot/extras/test_jobs/file_upload_pass.py +1 -1
  183. nautobot/extras/test_jobs/ipaddress_vars.py +3 -1
  184. nautobot/extras/test_jobs/jobs_module/jobs_submodule/jobs.py +1 -1
  185. nautobot/extras/test_jobs/location_with_custom_field.py +1 -1
  186. nautobot/extras/test_jobs/log_redaction.py +1 -1
  187. nautobot/extras/test_jobs/log_skip_db_logging.py +1 -1
  188. nautobot/extras/test_jobs/modify_db.py +1 -1
  189. nautobot/extras/test_jobs/object_var_optional.py +1 -1
  190. nautobot/extras/test_jobs/object_var_required.py +1 -1
  191. nautobot/extras/test_jobs/object_vars.py +1 -1
  192. nautobot/extras/test_jobs/pass.py +3 -3
  193. nautobot/extras/test_jobs/profiling.py +1 -1
  194. nautobot/extras/test_jobs/relative_import.py +3 -3
  195. nautobot/extras/test_jobs/singleton.py +16 -0
  196. nautobot/extras/test_jobs/soft_time_limit_greater_than_time_limit.py +1 -1
  197. nautobot/extras/test_jobs/task_queues.py +1 -1
  198. nautobot/extras/tests/integration/test_plugin_banner.py +0 -2
  199. nautobot/extras/tests/test_api.py +13 -13
  200. nautobot/extras/tests/test_customfields.py +1 -1
  201. nautobot/extras/tests/test_datasources.py +2 -1
  202. nautobot/extras/tests/test_dynamicgroups.py +1 -1
  203. nautobot/extras/tests/test_filters.py +6 -6
  204. nautobot/extras/tests/test_forms.py +33 -1
  205. nautobot/extras/tests/test_jobs.py +178 -32
  206. nautobot/extras/tests/test_models.py +16 -10
  207. nautobot/extras/tests/test_plugins.py +62 -9
  208. nautobot/extras/tests/test_relationships.py +120 -9
  209. nautobot/extras/tests/test_views.py +56 -194
  210. nautobot/extras/utils.py +3 -2
  211. nautobot/extras/views.py +30 -98
  212. nautobot/ipam/api/fields.py +3 -3
  213. nautobot/ipam/api/serializers.py +41 -33
  214. nautobot/ipam/api/views.py +68 -117
  215. nautobot/ipam/factory.py +1 -1
  216. nautobot/ipam/filters.py +3 -2
  217. nautobot/ipam/lookups.py +101 -62
  218. nautobot/ipam/models.py +66 -16
  219. nautobot/ipam/querysets.py +2 -2
  220. nautobot/ipam/tables.py +23 -7
  221. nautobot/ipam/templates/ipam/ipaddress.html +1 -9
  222. nautobot/ipam/templates/ipam/ipaddress_bulk_add.html +1 -7
  223. nautobot/ipam/templates/ipam/ipaddress_edit.html +1 -7
  224. nautobot/ipam/templates/ipam/prefix.html +1 -9
  225. nautobot/ipam/templates/ipam/prefix_edit.html +1 -7
  226. nautobot/ipam/templates/ipam/vlan.html +1 -9
  227. nautobot/ipam/templates/ipam/vlan_edit.html +1 -7
  228. nautobot/ipam/templates/ipam/vrf_edit.html +1 -7
  229. nautobot/ipam/tests/test_api.py +436 -3
  230. nautobot/ipam/tests/test_forms.py +49 -47
  231. nautobot/ipam/tests/test_migrations.py +30 -30
  232. nautobot/ipam/tests/test_models.py +95 -34
  233. nautobot/ipam/tests/test_querysets.py +63 -1
  234. nautobot/ipam/tests/test_views.py +3 -0
  235. nautobot/ipam/utils/__init__.py +36 -6
  236. nautobot/ipam/views.py +61 -87
  237. nautobot/project-static/bootstrap-3.4.1-dist/css/bootstrap-theme.css.map +1 -1
  238. nautobot/project-static/bootstrap-3.4.1-dist/css/bootstrap-theme.min.css.map +1 -1
  239. nautobot/project-static/bootstrap-3.4.1-dist/css/bootstrap.css +40 -2
  240. nautobot/project-static/bootstrap-3.4.1-dist/css/bootstrap.css.map +1 -1
  241. nautobot/project-static/bootstrap-3.4.1-dist/css/bootstrap.min.css +1 -1
  242. nautobot/project-static/bootstrap-3.4.1-dist/css/bootstrap.min.css.map +1 -1
  243. nautobot/project-static/docs/404.html +46 -4
  244. nautobot/project-static/docs/apps/index.html +46 -4
  245. nautobot/project-static/docs/apps/nautobot-apps.html +47 -6
  246. nautobot/project-static/docs/assets/_mkdocstrings.css +25 -1
  247. nautobot/project-static/docs/assets/javascripts/{bundle.83f73b43.min.js → bundle.88dd0f4e.min.js} +2 -2
  248. nautobot/project-static/docs/assets/javascripts/{bundle.83f73b43.min.js.map → bundle.88dd0f4e.min.js.map} +2 -2
  249. nautobot/project-static/docs/code-reference/nautobot/apps/__init__.html +62 -10
  250. nautobot/project-static/docs/code-reference/nautobot/apps/admin.html +59 -7
  251. nautobot/project-static/docs/code-reference/nautobot/apps/api.html +374 -122
  252. nautobot/project-static/docs/code-reference/nautobot/apps/change_logging.html +90 -18
  253. nautobot/project-static/docs/code-reference/nautobot/apps/choices.html +95 -21
  254. nautobot/project-static/docs/code-reference/nautobot/apps/config.html +53 -6
  255. nautobot/project-static/docs/code-reference/nautobot/apps/constants.html +52 -5
  256. nautobot/project-static/docs/code-reference/nautobot/apps/datasources.html +79 -17
  257. nautobot/project-static/docs/code-reference/nautobot/apps/events.html +102 -28
  258. nautobot/project-static/docs/code-reference/nautobot/apps/exceptions.html +108 -21
  259. nautobot/project-static/docs/code-reference/nautobot/apps/factory.html +131 -38
  260. nautobot/project-static/docs/code-reference/nautobot/apps/filters.html +239 -65
  261. nautobot/project-static/docs/code-reference/nautobot/apps/forms.html +581 -165
  262. nautobot/project-static/docs/code-reference/nautobot/apps/graphql.html +109 -36
  263. nautobot/project-static/docs/code-reference/nautobot/apps/jobs.html +453 -167
  264. nautobot/project-static/docs/code-reference/nautobot/apps/models.html +493 -211
  265. nautobot/project-static/docs/code-reference/nautobot/apps/querysets.html +60 -8
  266. nautobot/project-static/docs/code-reference/nautobot/apps/secrets.html +71 -15
  267. nautobot/project-static/docs/code-reference/nautobot/apps/tables.html +407 -55
  268. nautobot/project-static/docs/code-reference/nautobot/apps/testing.html +620 -205
  269. nautobot/project-static/docs/code-reference/nautobot/apps/ui.html +858 -412
  270. nautobot/project-static/docs/code-reference/nautobot/apps/urls.html +59 -7
  271. nautobot/project-static/docs/code-reference/nautobot/apps/utils.html +448 -186
  272. nautobot/project-static/docs/code-reference/nautobot/apps/views.html +365 -147
  273. nautobot/project-static/docs/development/apps/api/configuration-view.html +46 -4
  274. nautobot/project-static/docs/development/apps/api/database-backend-config.html +46 -4
  275. nautobot/project-static/docs/development/apps/api/models/django-admin.html +46 -4
  276. nautobot/project-static/docs/development/apps/api/models/global-search.html +46 -4
  277. nautobot/project-static/docs/development/apps/api/models/graphql.html +46 -4
  278. nautobot/project-static/docs/development/apps/api/models/index.html +46 -4
  279. nautobot/project-static/docs/development/apps/api/nautobot-app-config.html +46 -4
  280. nautobot/project-static/docs/development/apps/api/platform-features/custom-validators.html +46 -4
  281. nautobot/project-static/docs/development/apps/api/platform-features/filter-extensions.html +46 -4
  282. nautobot/project-static/docs/development/apps/api/platform-features/git-repository-content.html +46 -4
  283. nautobot/project-static/docs/development/apps/api/platform-features/index.html +46 -4
  284. nautobot/project-static/docs/development/apps/api/platform-features/jinja2-filters.html +46 -4
  285. nautobot/project-static/docs/development/apps/api/platform-features/jobs.html +46 -4
  286. nautobot/project-static/docs/development/apps/api/platform-features/populating-extensibility-features.html +46 -4
  287. nautobot/project-static/docs/development/apps/api/platform-features/secrets-providers.html +46 -4
  288. nautobot/project-static/docs/development/apps/api/platform-features/table-extensions.html +68 -7
  289. nautobot/project-static/docs/development/apps/api/platform-features/uniquely-identify-objects.html +46 -4
  290. nautobot/project-static/docs/development/apps/api/prometheus.html +46 -4
  291. nautobot/project-static/docs/development/apps/api/setup.html +46 -4
  292. nautobot/project-static/docs/development/apps/api/testing.html +46 -4
  293. nautobot/project-static/docs/development/apps/api/ui-extensions/banners.html +46 -4
  294. nautobot/project-static/docs/development/apps/api/ui-extensions/home-page.html +46 -4
  295. nautobot/project-static/docs/development/apps/api/ui-extensions/index.html +46 -4
  296. nautobot/project-static/docs/development/apps/api/ui-extensions/navigation.html +46 -4
  297. nautobot/project-static/docs/development/apps/api/ui-extensions/object-views.html +46 -4
  298. nautobot/project-static/docs/development/apps/api/views/base-template.html +46 -4
  299. nautobot/project-static/docs/development/apps/api/views/core-view-overrides.html +46 -4
  300. nautobot/project-static/docs/development/apps/api/views/django-generic-views.html +46 -4
  301. nautobot/project-static/docs/development/apps/api/views/help-documentation.html +46 -4
  302. nautobot/project-static/docs/development/apps/api/views/index.html +46 -4
  303. nautobot/project-static/docs/development/apps/api/views/nautobot-generic-views.html +46 -4
  304. nautobot/project-static/docs/development/apps/api/views/nautobotuiviewset.html +46 -4
  305. nautobot/project-static/docs/development/apps/api/views/nautobotuiviewsetrouter.html +46 -4
  306. nautobot/project-static/docs/development/apps/api/views/notes.html +46 -4
  307. nautobot/project-static/docs/development/apps/api/views/rest-api.html +52 -6
  308. nautobot/project-static/docs/development/apps/api/views/urls.html +46 -4
  309. nautobot/project-static/docs/development/apps/index.html +46 -4
  310. nautobot/project-static/docs/development/apps/migration/code-updates.html +46 -4
  311. nautobot/project-static/docs/development/apps/migration/dependency-updates.html +46 -4
  312. nautobot/project-static/docs/development/apps/migration/from-v1.html +46 -4
  313. nautobot/project-static/docs/development/apps/migration/model-updates/dcim.html +46 -4
  314. nautobot/project-static/docs/development/apps/migration/model-updates/extras.html +46 -4
  315. nautobot/project-static/docs/development/apps/migration/model-updates/global.html +46 -4
  316. nautobot/project-static/docs/development/apps/migration/model-updates/ipam.html +46 -4
  317. nautobot/project-static/docs/development/apps/migration/ui-component-framework/best-practices.html +50 -8
  318. nautobot/project-static/docs/development/apps/migration/ui-component-framework/custom-content.html +46 -4
  319. nautobot/project-static/docs/development/apps/migration/ui-component-framework/index.html +211 -14
  320. nautobot/project-static/docs/development/apps/migration/ui-component-framework/migration-steps.html +46 -4
  321. nautobot/project-static/docs/development/apps/porting-from-netbox.html +46 -4
  322. nautobot/project-static/docs/development/core/application-registry.html +46 -4
  323. nautobot/project-static/docs/development/core/best-practices.html +46 -4
  324. nautobot/project-static/docs/development/core/bootstrap-ui.html +46 -4
  325. nautobot/project-static/docs/development/core/caching.html +46 -4
  326. nautobot/project-static/docs/development/core/controllers.html +46 -4
  327. nautobot/project-static/docs/development/core/docker-compose-advanced-use-cases.html +73 -74
  328. nautobot/project-static/docs/development/core/generic-views.html +46 -4
  329. nautobot/project-static/docs/development/core/getting-started.html +249 -224
  330. nautobot/project-static/docs/development/core/homepage.html +49 -7
  331. nautobot/project-static/docs/development/core/index.html +46 -4
  332. nautobot/project-static/docs/development/core/{local-k8s.html → minikube-dev-environment-for-k8s-jobs.html} +469 -168
  333. nautobot/project-static/docs/development/core/model-checklist.html +56 -12
  334. nautobot/project-static/docs/development/core/model-features.html +46 -4
  335. nautobot/project-static/docs/development/core/natural-keys.html +46 -4
  336. nautobot/project-static/docs/development/core/navigation-menu.html +46 -4
  337. nautobot/project-static/docs/development/core/release-checklist.html +49 -7
  338. nautobot/project-static/docs/development/core/role-internals.html +46 -4
  339. nautobot/project-static/docs/development/core/settings.html +46 -4
  340. nautobot/project-static/docs/development/core/style-guide.html +49 -7
  341. nautobot/project-static/docs/development/core/templates.html +46 -4
  342. nautobot/project-static/docs/development/core/testing.html +46 -4
  343. nautobot/project-static/docs/development/core/ui-component-framework.html +369 -273
  344. nautobot/project-static/docs/development/core/user-preferences.html +46 -4
  345. nautobot/project-static/docs/development/index.html +46 -4
  346. nautobot/project-static/docs/development/jobs/index.html +216 -122
  347. nautobot/project-static/docs/development/jobs/migration/from-v1.html +46 -4
  348. nautobot/project-static/docs/index.html +54 -23
  349. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_edit.png +0 -0
  350. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_edit_button.png +0 -0
  351. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_list_nav.png +0 -0
  352. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_list_view.png +0 -0
  353. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_queue.png +0 -0
  354. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_queue_add.png +0 -0
  355. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_queue_config.png +0 -0
  356. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_result_completed.png +0 -0
  357. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_result_nav.png +0 -0
  358. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_result_pending.png +0 -0
  359. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_run_form.png +0 -0
  360. nautobot/project-static/docs/media/development/core/kubernetes/k8s_nautobot_login.png +0 -0
  361. nautobot/project-static/docs/media/development/core/kubernetes/k8s_run_job.png +0 -0
  362. nautobot/project-static/docs/media/development/core/kubernetes/k8s_run_scheduled_job_form.png +0 -0
  363. nautobot/project-static/docs/media/development/core/kubernetes/k8s_scheduled_job_result.png +0 -0
  364. nautobot/project-static/docs/media/development/core/ui-component-framework/buttons-example.png +0 -0
  365. nautobot/project-static/docs/media/development/core/ui-component-framework/cluster-type-before-after-example.png +0 -0
  366. nautobot/project-static/docs/media/development/core/ui-component-framework/object-fields-panel-example_2.png +0 -0
  367. nautobot/project-static/docs/media/development/core/ui-component-framework/stats-panel-example-code.png +0 -0
  368. nautobot/project-static/docs/objects.inv +0 -0
  369. nautobot/project-static/docs/overview/application_stack.html +47 -7
  370. nautobot/project-static/docs/overview/design_philosophy.html +46 -4
  371. nautobot/project-static/docs/release-notes/index.html +52 -12
  372. nautobot/project-static/docs/release-notes/version-1.0.html +234 -193
  373. nautobot/project-static/docs/release-notes/version-1.1.html +231 -190
  374. nautobot/project-static/docs/release-notes/version-1.2.html +306 -265
  375. nautobot/project-static/docs/release-notes/version-1.3.html +332 -291
  376. nautobot/project-static/docs/release-notes/version-1.4.html +417 -377
  377. nautobot/project-static/docs/release-notes/version-1.5.html +605 -566
  378. nautobot/project-static/docs/release-notes/version-1.6.html +904 -447
  379. nautobot/project-static/docs/release-notes/version-2.0.html +528 -489
  380. nautobot/project-static/docs/release-notes/version-2.1.html +363 -324
  381. nautobot/project-static/docs/release-notes/version-2.2.html +356 -317
  382. nautobot/project-static/docs/release-notes/version-2.3.html +997 -352
  383. nautobot/project-static/docs/release-notes/version-2.4.html +525 -101
  384. nautobot/project-static/docs/requirements.txt +2 -2
  385. nautobot/project-static/docs/search/search_index.json +1 -1
  386. nautobot/project-static/docs/sitemap.xml +295 -287
  387. nautobot/project-static/docs/sitemap.xml.gz +0 -0
  388. nautobot/project-static/docs/user-guide/administration/configuration/authentication/ldap.html +46 -4
  389. nautobot/project-static/docs/user-guide/administration/configuration/authentication/remote.html +46 -4
  390. nautobot/project-static/docs/user-guide/administration/configuration/authentication/sso.html +48 -6
  391. nautobot/project-static/docs/user-guide/administration/configuration/index.html +46 -4
  392. nautobot/project-static/docs/user-guide/administration/configuration/redis.html +46 -4
  393. nautobot/project-static/docs/user-guide/administration/configuration/settings.html +110 -8
  394. nautobot/project-static/docs/user-guide/administration/configuration/time-zones.html +46 -4
  395. nautobot/project-static/docs/user-guide/administration/guides/celery-queues.html +46 -4
  396. nautobot/project-static/docs/user-guide/administration/guides/docker.html +46 -4
  397. nautobot/project-static/docs/user-guide/administration/guides/health-checks.html +46 -4
  398. nautobot/project-static/docs/user-guide/administration/guides/permissions.html +46 -4
  399. nautobot/project-static/docs/user-guide/administration/guides/prometheus-metrics.html +46 -4
  400. nautobot/project-static/docs/user-guide/administration/guides/replicating-nautobot.html +46 -4
  401. nautobot/project-static/docs/user-guide/administration/guides/request-profiling.html +46 -4
  402. nautobot/project-static/docs/user-guide/administration/guides/s3-django-storage.html +48 -6
  403. nautobot/project-static/docs/user-guide/administration/guides/selinux-troubleshooting.html +46 -4
  404. nautobot/project-static/docs/user-guide/administration/installation/app-install.html +46 -4
  405. nautobot/project-static/docs/user-guide/administration/installation/external-authentication.html +46 -4
  406. nautobot/project-static/docs/user-guide/administration/installation/http-server.html +66 -8
  407. nautobot/project-static/docs/user-guide/administration/installation/index.html +46 -4
  408. nautobot/project-static/docs/user-guide/administration/installation/install_system.html +47 -5
  409. nautobot/project-static/docs/user-guide/administration/installation/nautobot.html +46 -4
  410. nautobot/project-static/docs/user-guide/administration/installation/services.html +46 -4
  411. nautobot/project-static/docs/user-guide/administration/migration/migrating-from-netbox.html +46 -4
  412. nautobot/project-static/docs/user-guide/administration/migration/migrating-from-postgresql.html +46 -4
  413. nautobot/project-static/docs/user-guide/administration/tools/nautobot-server.html +46 -4
  414. nautobot/project-static/docs/user-guide/administration/tools/nautobot-shell.html +46 -4
  415. nautobot/project-static/docs/user-guide/administration/upgrading/database-backup.html +46 -4
  416. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/after-you-upgrade.html +46 -4
  417. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/before-you-upgrade.html +46 -4
  418. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/for-developers.html +46 -4
  419. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/index.html +46 -4
  420. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/whats-changed.html +49 -8
  421. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/region-and-site-data-migration-guide.html +46 -4
  422. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/upgrading-from-nautobot-v1.html +46 -4
  423. nautobot/project-static/docs/user-guide/administration/upgrading/upgrading.html +46 -4
  424. nautobot/project-static/docs/user-guide/core-data-model/circuits/circuit.html +46 -4
  425. nautobot/project-static/docs/user-guide/core-data-model/circuits/circuittermination.html +46 -4
  426. nautobot/project-static/docs/user-guide/core-data-model/circuits/circuittype.html +46 -4
  427. nautobot/project-static/docs/user-guide/core-data-model/circuits/provider.html +46 -4
  428. nautobot/project-static/docs/user-guide/core-data-model/circuits/providernetwork.html +46 -4
  429. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloud.html +46 -4
  430. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudaccount.html +46 -4
  431. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudnetwork.html +46 -4
  432. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudnetworkprefixassignment.html +46 -4
  433. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudresourcetype.html +46 -4
  434. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudservice.html +46 -4
  435. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudservicenetworkassignment.html +46 -4
  436. nautobot/project-static/docs/user-guide/core-data-model/dcim/cable.html +46 -4
  437. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleport.html +46 -4
  438. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleporttemplate.html +46 -4
  439. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleserverport.html +46 -4
  440. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleserverporttemplate.html +46 -4
  441. nautobot/project-static/docs/user-guide/core-data-model/dcim/controller.html +46 -4
  442. nautobot/project-static/docs/user-guide/core-data-model/dcim/controllermanageddevicegroup.html +46 -4
  443. nautobot/project-static/docs/user-guide/core-data-model/dcim/device.html +46 -4
  444. nautobot/project-static/docs/user-guide/core-data-model/dcim/devicebay.html +46 -4
  445. nautobot/project-static/docs/user-guide/core-data-model/dcim/devicebaytemplate.html +46 -4
  446. nautobot/project-static/docs/user-guide/core-data-model/dcim/devicefamily.html +46 -4
  447. nautobot/project-static/docs/user-guide/core-data-model/dcim/deviceredundancygroup.html +46 -4
  448. nautobot/project-static/docs/user-guide/core-data-model/dcim/devicetype.html +46 -4
  449. nautobot/project-static/docs/user-guide/core-data-model/dcim/frontport.html +46 -4
  450. nautobot/project-static/docs/user-guide/core-data-model/dcim/frontporttemplate.html +46 -4
  451. nautobot/project-static/docs/user-guide/core-data-model/dcim/interface.html +46 -4
  452. nautobot/project-static/docs/user-guide/core-data-model/dcim/interfaceredundancygroup.html +46 -4
  453. nautobot/project-static/docs/user-guide/core-data-model/dcim/interfacetemplate.html +46 -4
  454. nautobot/project-static/docs/user-guide/core-data-model/dcim/inventoryitem.html +46 -4
  455. nautobot/project-static/docs/user-guide/core-data-model/dcim/location.html +46 -4
  456. nautobot/project-static/docs/user-guide/core-data-model/dcim/locationtype.html +46 -4
  457. nautobot/project-static/docs/user-guide/core-data-model/dcim/manufacturer.html +46 -4
  458. nautobot/project-static/docs/user-guide/core-data-model/dcim/module.html +46 -4
  459. nautobot/project-static/docs/user-guide/core-data-model/dcim/modulebay.html +46 -4
  460. nautobot/project-static/docs/user-guide/core-data-model/dcim/modulebaytemplate.html +46 -4
  461. nautobot/project-static/docs/user-guide/core-data-model/dcim/moduletype.html +46 -4
  462. nautobot/project-static/docs/user-guide/core-data-model/dcim/platform.html +46 -4
  463. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerfeed.html +46 -4
  464. nautobot/project-static/docs/user-guide/core-data-model/dcim/poweroutlet.html +46 -4
  465. nautobot/project-static/docs/user-guide/core-data-model/dcim/poweroutlettemplate.html +46 -4
  466. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerpanel.html +46 -4
  467. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerport.html +46 -4
  468. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerporttemplate.html +46 -4
  469. nautobot/project-static/docs/user-guide/core-data-model/dcim/rack.html +46 -4
  470. nautobot/project-static/docs/user-guide/core-data-model/dcim/rackgroup.html +46 -4
  471. nautobot/project-static/docs/user-guide/core-data-model/dcim/rackreservation.html +46 -4
  472. nautobot/project-static/docs/user-guide/core-data-model/dcim/rearport.html +46 -4
  473. nautobot/project-static/docs/user-guide/core-data-model/dcim/rearporttemplate.html +46 -4
  474. nautobot/project-static/docs/user-guide/core-data-model/dcim/softwareimagefile.html +46 -4
  475. nautobot/project-static/docs/user-guide/core-data-model/dcim/softwareversion.html +46 -4
  476. nautobot/project-static/docs/user-guide/core-data-model/dcim/virtualchassis.html +46 -4
  477. nautobot/project-static/docs/user-guide/core-data-model/dcim/virtualdevicecontext.html +46 -4
  478. nautobot/project-static/docs/user-guide/core-data-model/extras/configcontext.html +50 -12
  479. nautobot/project-static/docs/user-guide/core-data-model/extras/configcontextschema.html +46 -4
  480. nautobot/project-static/docs/user-guide/core-data-model/extras/contact.html +46 -4
  481. nautobot/project-static/docs/user-guide/core-data-model/extras/team.html +46 -4
  482. nautobot/project-static/docs/user-guide/core-data-model/ipam/ipaddress.html +46 -4
  483. nautobot/project-static/docs/user-guide/core-data-model/ipam/namespace.html +46 -4
  484. nautobot/project-static/docs/user-guide/core-data-model/ipam/prefix.html +46 -4
  485. nautobot/project-static/docs/user-guide/core-data-model/ipam/rir.html +46 -4
  486. nautobot/project-static/docs/user-guide/core-data-model/ipam/routetarget.html +46 -4
  487. nautobot/project-static/docs/user-guide/core-data-model/ipam/service.html +46 -4
  488. nautobot/project-static/docs/user-guide/core-data-model/ipam/vlan.html +46 -4
  489. nautobot/project-static/docs/user-guide/core-data-model/ipam/vlangroup.html +46 -4
  490. nautobot/project-static/docs/user-guide/core-data-model/ipam/vrf.html +46 -4
  491. nautobot/project-static/docs/user-guide/core-data-model/overview/introduction.html +49 -7
  492. nautobot/project-static/docs/user-guide/core-data-model/tenancy/tenant.html +46 -4
  493. nautobot/project-static/docs/user-guide/core-data-model/tenancy/tenantgroup.html +46 -4
  494. nautobot/project-static/docs/user-guide/core-data-model/virtualization/cluster.html +46 -4
  495. nautobot/project-static/docs/user-guide/core-data-model/virtualization/clustergroup.html +46 -4
  496. nautobot/project-static/docs/user-guide/core-data-model/virtualization/clustertype.html +46 -4
  497. nautobot/project-static/docs/user-guide/core-data-model/virtualization/virtualmachine.html +46 -4
  498. nautobot/project-static/docs/user-guide/core-data-model/virtualization/vminterface.html +46 -4
  499. nautobot/project-static/docs/user-guide/core-data-model/wireless/index.html +46 -4
  500. nautobot/project-static/docs/user-guide/core-data-model/wireless/radioprofile.html +46 -4
  501. nautobot/project-static/docs/user-guide/core-data-model/wireless/supporteddatarate.html +46 -4
  502. nautobot/project-static/docs/user-guide/core-data-model/wireless/wirelessnetwork.html +46 -4
  503. nautobot/project-static/docs/user-guide/feature-guides/contacts-and-teams.html +46 -4
  504. nautobot/project-static/docs/user-guide/feature-guides/custom-fields.html +46 -4
  505. nautobot/project-static/docs/user-guide/feature-guides/getting-started/creating-devices.html +46 -4
  506. nautobot/project-static/docs/user-guide/feature-guides/getting-started/creating-location-types-and-locations.html +46 -4
  507. nautobot/project-static/docs/user-guide/feature-guides/getting-started/index.html +46 -4
  508. nautobot/project-static/docs/user-guide/feature-guides/getting-started/interfaces.html +46 -4
  509. nautobot/project-static/docs/user-guide/feature-guides/getting-started/ipam.html +46 -4
  510. nautobot/project-static/docs/user-guide/feature-guides/getting-started/platforms.html +46 -4
  511. nautobot/project-static/docs/user-guide/feature-guides/getting-started/search-bar.html +46 -4
  512. nautobot/project-static/docs/user-guide/feature-guides/getting-started/tenants.html +46 -4
  513. nautobot/project-static/docs/user-guide/feature-guides/getting-started/vlans-and-vlan-groups.html +46 -4
  514. nautobot/project-static/docs/user-guide/feature-guides/git-data-source.html +51 -7
  515. nautobot/project-static/docs/user-guide/feature-guides/graphql.html +46 -4
  516. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/central-mode.png +0 -0
  517. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/device-group-add.png +0 -0
  518. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/device-group-create-1.png +0 -0
  519. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/device-group-create-2.png +0 -0
  520. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/radio-profile-add.png +0 -0
  521. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/radio-profile-create.png +0 -0
  522. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/supported-data-rate-add.png +0 -0
  523. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/supported-data-rate-create.png +0 -0
  524. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/wireless-controller-add.png +0 -0
  525. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/wireless-controller-create-1.png +0 -0
  526. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/wireless-controller-create-2.png +0 -0
  527. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/wireless-network-add.png +0 -0
  528. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/wireless-network-create.png +0 -0
  529. nautobot/project-static/docs/user-guide/feature-guides/ip-address-merge-tool.html +46 -4
  530. nautobot/project-static/docs/user-guide/feature-guides/relationships.html +46 -4
  531. nautobot/project-static/docs/user-guide/feature-guides/software-image-files-and-versions.html +49 -7
  532. nautobot/project-static/docs/user-guide/feature-guides/wireless-networks-and-controllers.html +9444 -0
  533. nautobot/project-static/docs/user-guide/index.html +46 -4
  534. nautobot/project-static/docs/user-guide/platform-functionality/change-logging.html +46 -4
  535. nautobot/project-static/docs/user-guide/platform-functionality/computedfield.html +50 -8
  536. nautobot/project-static/docs/user-guide/platform-functionality/customfield.html +46 -4
  537. nautobot/project-static/docs/user-guide/platform-functionality/customlink.html +46 -4
  538. nautobot/project-static/docs/user-guide/platform-functionality/dynamicgroup.html +46 -4
  539. nautobot/project-static/docs/user-guide/platform-functionality/events.html +46 -4
  540. nautobot/project-static/docs/user-guide/platform-functionality/exporttemplate.html +46 -4
  541. nautobot/project-static/docs/user-guide/platform-functionality/externalintegration.html +46 -4
  542. nautobot/project-static/docs/user-guide/platform-functionality/gitrepository.html +46 -4
  543. nautobot/project-static/docs/user-guide/platform-functionality/graphql.html +46 -4
  544. nautobot/project-static/docs/user-guide/platform-functionality/graphqlquery.html +46 -4
  545. nautobot/project-static/docs/user-guide/platform-functionality/imageattachment.html +46 -4
  546. nautobot/project-static/docs/user-guide/platform-functionality/jobs/index.html +50 -7
  547. nautobot/project-static/docs/user-guide/platform-functionality/jobs/job-scheduling-and-approvals.html +46 -4
  548. nautobot/project-static/docs/user-guide/platform-functionality/jobs/jobbutton.html +49 -7
  549. nautobot/project-static/docs/user-guide/platform-functionality/jobs/jobhook.html +46 -4
  550. nautobot/project-static/docs/user-guide/platform-functionality/jobs/jobqueue.html +46 -4
  551. nautobot/project-static/docs/user-guide/platform-functionality/jobs/kubernetes-job-support.html +9722 -0
  552. nautobot/project-static/docs/user-guide/platform-functionality/jobs/models.html +46 -4
  553. nautobot/project-static/docs/user-guide/platform-functionality/napalm.html +46 -4
  554. nautobot/project-static/docs/user-guide/platform-functionality/note.html +46 -4
  555. nautobot/project-static/docs/user-guide/platform-functionality/objectmetadata.html +46 -4
  556. nautobot/project-static/docs/user-guide/platform-functionality/relationship.html +47 -5
  557. nautobot/project-static/docs/user-guide/platform-functionality/rendering-jinja-templates.html +46 -4
  558. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/authentication.html +46 -4
  559. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/filtering.html +94 -25
  560. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/overview.html +74 -5
  561. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/ui-related-endpoints.html +46 -4
  562. nautobot/project-static/docs/user-guide/platform-functionality/role.html +46 -4
  563. nautobot/project-static/docs/user-guide/platform-functionality/savedview.html +46 -4
  564. nautobot/project-static/docs/user-guide/platform-functionality/secret.html +46 -4
  565. nautobot/project-static/docs/user-guide/platform-functionality/staticgroupassociation.html +46 -4
  566. nautobot/project-static/docs/user-guide/platform-functionality/status.html +46 -4
  567. nautobot/project-static/docs/user-guide/platform-functionality/tag.html +46 -4
  568. nautobot/project-static/docs/user-guide/platform-functionality/template-filters.html +46 -4
  569. nautobot/project-static/docs/user-guide/platform-functionality/users/objectpermission.html +46 -4
  570. nautobot/project-static/docs/user-guide/platform-functionality/users/token.html +46 -4
  571. nautobot/project-static/docs/user-guide/platform-functionality/webhook.html +46 -4
  572. nautobot/project-static/js/forms.js +1 -1
  573. nautobot/tenancy/api/views.py +9 -13
  574. nautobot/tenancy/views.py +4 -2
  575. nautobot/users/admin.py +1 -1
  576. nautobot/users/api/serializers.py +5 -4
  577. nautobot/users/api/views.py +3 -3
  578. nautobot/virtualization/api/serializers.py +4 -4
  579. nautobot/virtualization/api/views.py +5 -24
  580. nautobot/virtualization/filters.py +20 -3
  581. nautobot/virtualization/models.py +1 -1
  582. nautobot/virtualization/tables.py +2 -2
  583. nautobot/virtualization/templates/virtualization/cluster_edit.html +1 -7
  584. nautobot/virtualization/templates/virtualization/virtualmachine.html +1 -9
  585. nautobot/virtualization/templates/virtualization/virtualmachine_edit.html +2 -8
  586. nautobot/virtualization/tests/test_filters.py +17 -0
  587. nautobot/wireless/filters.py +2 -2
  588. nautobot/wireless/forms.py +1 -1
  589. nautobot/wireless/templates/wireless/wirelessnetwork_retrieve.html +1 -9
  590. nautobot/wireless/tests/integration/__init__.py +0 -0
  591. nautobot/wireless/tests/integration/test_radio_profile.py +42 -0
  592. nautobot/wireless/tests/test_filters.py +29 -1
  593. nautobot/wireless/tests/test_views.py +22 -1
  594. nautobot/wireless/views.py +0 -10
  595. {nautobot-2.4.0b1.dist-info → nautobot-2.4.1.dist-info}/METADATA +6 -6
  596. {nautobot-2.4.0b1.dist-info → nautobot-2.4.1.dist-info}/RECORD +600 -550
  597. {nautobot-2.4.0b1.dist-info → nautobot-2.4.1.dist-info}/WHEEL +1 -1
  598. nautobot/core/fixtures/user-data.json +0 -59
  599. {nautobot-2.4.0b1.dist-info → nautobot-2.4.1.dist-info}/LICENSE.txt +0 -0
  600. {nautobot-2.4.0b1.dist-info → nautobot-2.4.1.dist-info}/NOTICE +0 -0
  601. {nautobot-2.4.0b1.dist-info → nautobot-2.4.1.dist-info}/entry_points.txt +0 -0
@@ -18,7 +18,7 @@
18
18
 
19
19
 
20
20
  <link rel="icon" href="../../../assets/favicon.ico">
21
- <meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.46">
21
+ <meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.49">
22
22
 
23
23
 
24
24
 
@@ -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
 
@@ -5131,6 +5152,27 @@
5131
5152
 
5132
5153
 
5133
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
+
5134
5176
  <li class="md-nav__item">
5135
5177
  <a href="../../../user-guide/platform-functionality/jobs/jobbutton.html" class="md-nav__link">
5136
5178
 
@@ -7211,6 +7253,21 @@
7211
7253
  </span>
7212
7254
  </a>
7213
7255
 
7256
+ <nav class="md-nav" aria-label="BulkEditForm">
7257
+ <ul class="md-nav__list">
7258
+
7259
+ <li class="md-nav__item">
7260
+ <a href="#nautobot.apps.forms.BulkEditForm.post_save" class="md-nav__link">
7261
+ <span class="md-ellipsis">
7262
+ post_save
7263
+ </span>
7264
+ </a>
7265
+
7266
+ </li>
7267
+
7268
+ </ul>
7269
+ </nav>
7270
+
7214
7271
  </li>
7215
7272
 
7216
7273
  <li class="md-nav__item">
@@ -8977,11 +9034,11 @@
8977
9034
 
8978
9035
 
8979
9036
  <li class="md-nav__item">
8980
- <a href="../../../development/core/local-k8s.html" class="md-nav__link">
9037
+ <a href="../../../development/core/minikube-dev-environment-for-k8s-jobs.html" class="md-nav__link">
8981
9038
 
8982
9039
 
8983
9040
  <span class="md-ellipsis">
8984
- Local Kubernetes Cluster
9041
+ Minikube Dev Environment for K8s Jobs
8985
9042
  </span>
8986
9043
 
8987
9044
 
@@ -9946,6 +10003,21 @@
9946
10003
  </span>
9947
10004
  </a>
9948
10005
 
10006
+ <nav class="md-nav" aria-label="BulkEditForm">
10007
+ <ul class="md-nav__list">
10008
+
10009
+ <li class="md-nav__item">
10010
+ <a href="#nautobot.apps.forms.BulkEditForm.post_save" class="md-nav__link">
10011
+ <span class="md-ellipsis">
10012
+ post_save
10013
+ </span>
10014
+ </a>
10015
+
10016
+ </li>
10017
+
10018
+ </ul>
10019
+ </nav>
10020
+
9949
10021
  </li>
9950
10022
 
9951
10023
  <li class="md-nav__item">
@@ -10800,7 +10872,12 @@
10800
10872
 
10801
10873
  <div class="doc doc-contents first">
10802
10874
 
10803
- <p>Forms and fields for apps to use.</p>
10875
+ <p>Forms and fields for apps to use.</p>
10876
+
10877
+
10878
+
10879
+
10880
+
10804
10881
 
10805
10882
 
10806
10883
 
@@ -10826,10 +10903,10 @@
10826
10903
 
10827
10904
  <div class="doc doc-contents ">
10828
10905
  <p class="doc doc-class-bases">
10829
- Bases: <code><autoref identifier="nautobot.core.forms.widgets.SelectWithDisabled" optional hover>SelectWithDisabled</autoref></code></p>
10906
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.forms.widgets.SelectWithDisabled" href="#nautobot.apps.forms.SelectWithDisabled">SelectWithDisabled</a></code></p>
10830
10907
 
10831
10908
 
10832
- <p>A select widget populated via an API call</p>
10909
+ <p>A select widget populated via an API call</p>
10833
10910
 
10834
10911
 
10835
10912
  <p><span class="doc-section-title">Parameters:</span></p>
@@ -10844,9 +10921,11 @@
10844
10921
  </thead>
10845
10922
  <tbody>
10846
10923
  <tr class="doc-section-item">
10847
- <td><code>api_url</code></td>
10848
10924
  <td>
10849
- <code><autoref identifier="str" optional>str</autoref></code>
10925
+ <code>api_url</code>
10926
+ </td>
10927
+ <td>
10928
+ <code>str</code>
10850
10929
  </td>
10851
10930
  <td>
10852
10931
  <div class="doc-md-description">
@@ -10858,9 +10937,11 @@
10858
10937
  </td>
10859
10938
  </tr>
10860
10939
  <tr class="doc-section-item">
10861
- <td><code>api_version</code></td>
10862
10940
  <td>
10863
- <code><autoref identifier="str" optional>str</autoref></code>
10941
+ <code>api_version</code>
10942
+ </td>
10943
+ <td>
10944
+ <code>str</code>
10864
10945
  </td>
10865
10946
  <td>
10866
10947
  <div class="doc-md-description">
@@ -10877,6 +10958,11 @@
10877
10958
 
10878
10959
 
10879
10960
 
10961
+
10962
+
10963
+
10964
+
10965
+
10880
10966
  <div class="doc doc-children">
10881
10967
 
10882
10968
 
@@ -10898,7 +10984,7 @@
10898
10984
 
10899
10985
  <div class="doc doc-contents ">
10900
10986
 
10901
- <p>Add details for an additional query param in the form of a data-* JSON-encoded list attribute.</p>
10987
+ <p>Add details for an additional query param in the form of a data-* JSON-encoded list attribute.</p>
10902
10988
  <p>:param name: The name of the query param
10903
10989
  :param value: The value of the query param</p>
10904
10990
 
@@ -10927,10 +11013,15 @@
10927
11013
 
10928
11014
  <div class="doc doc-contents ">
10929
11015
  <p class="doc doc-class-bases">
10930
- Bases: <code><autoref identifier="django.forms.ModelForm" optional hover>ModelForm</autoref></code></p>
11016
+ Bases: <code><span title="django.forms.ModelForm">ModelForm</span></code></p>
11017
+
11018
+
11019
+ <p>ModelForm mixin for IPAddress based models.</p>
11020
+
11021
+
11022
+
10931
11023
 
10932
11024
 
10933
- <p>ModelForm mixin for IPAddress based models.</p>
10934
11025
 
10935
11026
 
10936
11027
 
@@ -10966,10 +11057,10 @@
10966
11057
 
10967
11058
  <div class="doc doc-contents ">
10968
11059
  <p class="doc doc-class-bases">
10969
- Bases: <code><autoref identifier="django.forms.BaseForm" optional hover>BaseForm</autoref></code></p>
11060
+ Bases: <code><span title="django.forms.BaseForm">BaseForm</span></code></p>
10970
11061
 
10971
11062
 
10972
- <p>Add the base Bootstrap CSS classes to form elements.</p>
11063
+ <p>Add the base Bootstrap CSS classes to form elements.</p>
10973
11064
  <p>Note that this only applies to form fields that are:</p>
10974
11065
  <ol>
10975
11066
  <li>statically defined on the form class at declaration time, or</li>
@@ -10980,6 +11071,11 @@
10980
11071
 
10981
11072
 
10982
11073
 
11074
+
11075
+
11076
+
11077
+
11078
+
10983
11079
  <div class="doc doc-children">
10984
11080
 
10985
11081
 
@@ -11011,16 +11107,21 @@
11011
11107
 
11012
11108
  <div class="doc doc-contents ">
11013
11109
  <p class="doc doc-class-bases">
11014
- Bases: <code><autoref identifier="django.forms.Form" optional hover>Form</autoref></code></p>
11110
+ Bases: <code><span title="django.forms.Form">Form</span></code></p>
11015
11111
 
11016
11112
 
11017
- <p>Base form for editing multiple objects in bulk.</p>
11113
+ <p>Base form for editing multiple objects in bulk.</p>
11018
11114
  <p>Note that for models supporting custom fields and relationships, nautobot.extras.forms.NautobotBulkEditForm is
11019
11115
  a more powerful subclass and should be used instead of directly inheriting from this class.</p>
11020
11116
 
11021
11117
 
11022
11118
 
11023
11119
 
11120
+
11121
+
11122
+
11123
+
11124
+
11024
11125
  <div class="doc doc-children">
11025
11126
 
11026
11127
 
@@ -11031,6 +11132,23 @@ a more powerful subclass and should be used instead of directly inheriting from
11031
11132
 
11032
11133
 
11033
11134
 
11135
+ <div class="doc doc-object doc-function">
11136
+
11137
+
11138
+ <h3 id="nautobot.apps.forms.BulkEditForm.post_save" class="doc doc-heading">
11139
+ <code class="highlight language-python"><span class="n">post_save</span><span class="p">(</span><span class="n">obj</span><span class="p">)</span></code>
11140
+
11141
+ <a href="#nautobot.apps.forms.BulkEditForm.post_save" class="headerlink" title="Permanent link">&para;</a></h3>
11142
+
11143
+
11144
+ <div class="doc doc-contents ">
11145
+
11146
+ <p>Post save action</p>
11147
+
11148
+ </div>
11149
+
11150
+ </div>
11151
+
11034
11152
 
11035
11153
 
11036
11154
  </div>
@@ -11052,10 +11170,15 @@ a more powerful subclass and should be used instead of directly inheriting from
11052
11170
 
11053
11171
  <div class="doc doc-contents ">
11054
11172
  <p class="doc doc-class-bases">
11055
- Bases: <code><autoref identifier="django.forms.NullBooleanSelect" optional hover>NullBooleanSelect</autoref></code></p>
11173
+ Bases: <code><span title="django.forms.NullBooleanSelect">NullBooleanSelect</span></code></p>
11174
+
11175
+
11176
+ <p>A Select widget for NullBooleanFields</p>
11177
+
11178
+
11179
+
11056
11180
 
11057
11181
 
11058
- <p>A Select widget for NullBooleanFields</p>
11059
11182
 
11060
11183
 
11061
11184
 
@@ -11091,10 +11214,15 @@ a more powerful subclass and should be used instead of directly inheriting from
11091
11214
 
11092
11215
  <div class="doc doc-contents ">
11093
11216
  <p class="doc doc-class-bases">
11094
- Bases: <code><autoref identifier="django.forms.Form" optional hover>Form</autoref></code></p>
11217
+ Bases: <code><span title="django.forms.Form">Form</span></code></p>
11218
+
11219
+
11220
+ <p>An extendable form to be used for renaming objects in bulk.</p>
11221
+
11222
+
11223
+
11095
11224
 
11096
11225
 
11097
- <p>An extendable form to be used for renaming objects in bulk.</p>
11098
11226
 
11099
11227
 
11100
11228
 
@@ -11130,15 +11258,20 @@ a more powerful subclass and should be used instead of directly inheriting from
11130
11258
 
11131
11259
  <div class="doc doc-contents ">
11132
11260
  <p class="doc doc-class-bases">
11133
- Bases: <code><autoref identifier="django.forms.ChoiceField" optional hover>ChoiceField</autoref></code></p>
11261
+ Bases: <code><span title="django.forms.ChoiceField">ChoiceField</span></code></p>
11134
11262
 
11135
11263
 
11136
- <p>Invert the provided set of choices to take the human-friendly label as input, and return the database value.</p>
11264
+ <p>Invert the provided set of choices to take the human-friendly label as input, and return the database value.</p>
11137
11265
  <p>Despite the name, this is no longer used in CSV imports since 2.0, but <em>is</em> used in JSON/YAML import of DeviceTypes.</p>
11138
11266
 
11139
11267
 
11140
11268
 
11141
11269
 
11270
+
11271
+
11272
+
11273
+
11274
+
11142
11275
  <div class="doc doc-children">
11143
11276
 
11144
11277
 
@@ -11170,15 +11303,20 @@ a more powerful subclass and should be used instead of directly inheriting from
11170
11303
 
11171
11304
  <div class="doc doc-contents ">
11172
11305
  <p class="doc doc-class-bases">
11173
- Bases: <code><autoref identifier="nautobot.core.forms.fields.CSVModelChoiceField" optional hover>CSVModelChoiceField</autoref></code></p>
11306
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.forms.fields.CSVModelChoiceField" href="#nautobot.apps.forms.CSVModelChoiceField">CSVModelChoiceField</a></code></p>
11174
11307
 
11175
11308
 
11176
- <p>Reference a ContentType in the form <code>{app_label}.{model}</code>.</p>
11309
+ <p>Reference a ContentType in the form <code>{app_label}.{model}</code>.</p>
11177
11310
  <p>Note: class name is misleading; this field is also used in numerous FilterSets where it has nothing to do with CSV.</p>
11178
11311
 
11179
11312
 
11180
11313
 
11181
11314
 
11315
+
11316
+
11317
+
11318
+
11319
+
11182
11320
  <div class="doc doc-children">
11183
11321
 
11184
11322
 
@@ -11200,7 +11338,7 @@ a more powerful subclass and should be used instead of directly inheriting from
11200
11338
 
11201
11339
  <div class="doc doc-contents ">
11202
11340
 
11203
- <p>Allow this field to support <code>{app_label}.{model}</code> style, null values, or PK-based lookups
11341
+ <p>Allow this field to support <code>{app_label}.{model}</code> style, null values, or PK-based lookups
11204
11342
  depending on how the field is used.</p>
11205
11343
 
11206
11344
  </div>
@@ -11228,10 +11366,10 @@ depending on how the field is used.</p>
11228
11366
 
11229
11367
  <div class="doc doc-contents ">
11230
11368
  <p class="doc doc-class-bases">
11231
- Bases: <code><autoref identifier="django.forms.CharField" optional hover>CharField</autoref></code></p>
11369
+ Bases: <code><span title="django.forms.CharField">CharField</span></code></p>
11232
11370
 
11233
11371
 
11234
- <p>A CharField (rendered as a Textarea) which expects CSV-formatted data.</p>
11372
+ <p>A CharField (rendered as a Textarea) which expects CSV-formatted data.</p>
11235
11373
  <p>Initial value is a list of headers corresponding to the required fields for the given serializer class.</p>
11236
11374
  <p>This no longer actually does any CSV parsing or validation on its own,
11237
11375
  as that is now handled by the NautobotCSVParser class and the REST API serializers.</p>
@@ -11249,9 +11387,11 @@ as that is now handled by the NautobotCSVParser class and the REST API serialize
11249
11387
  </thead>
11250
11388
  <tbody>
11251
11389
  <tr class="doc-section-item">
11252
- <td><code>required_field_names</code></td>
11253
11390
  <td>
11254
- <code><autoref identifier="list" optional>list</autoref>[<autoref identifier="str" optional>str</autoref>]</code>
11391
+ <code>required_field_names</code>
11392
+ </td>
11393
+ <td>
11394
+ <code>list[str]</code>
11255
11395
  </td>
11256
11396
  <td>
11257
11397
  <div class="doc-md-description">
@@ -11268,6 +11408,11 @@ as that is now handled by the NautobotCSVParser class and the REST API serialize
11268
11408
 
11269
11409
 
11270
11410
 
11411
+
11412
+
11413
+
11414
+
11415
+
11271
11416
  <div class="doc doc-children">
11272
11417
 
11273
11418
 
@@ -11299,16 +11444,21 @@ as that is now handled by the NautobotCSVParser class and the REST API serialize
11299
11444
 
11300
11445
  <div class="doc doc-contents ">
11301
11446
  <p class="doc doc-class-bases">
11302
- Bases: <code><autoref identifier="django.forms.FileField" optional hover>FileField</autoref></code></p>
11447
+ Bases: <code><span title="django.forms.FileField">FileField</span></code></p>
11303
11448
 
11304
11449
 
11305
- <p>A FileField (rendered as a ClearableFileInput) which expects a file containing CSV-formatted data.</p>
11450
+ <p>A FileField (rendered as a ClearableFileInput) which expects a file containing CSV-formatted data.</p>
11306
11451
  <p>This no longer actually does any CSV parsing or validation on its own,
11307
11452
  as that is now handled by the NautobotCSVParser class and the REST API serializers.</p>
11308
11453
 
11309
11454
 
11310
11455
 
11311
11456
 
11457
+
11458
+
11459
+
11460
+
11461
+
11312
11462
  <div class="doc doc-children">
11313
11463
 
11314
11464
 
@@ -11323,14 +11473,14 @@ as that is now handled by the NautobotCSVParser class and the REST API serialize
11323
11473
 
11324
11474
 
11325
11475
  <h3 id="nautobot.apps.forms.CSVFileField.to_python" class="doc doc-heading">
11326
- <code class="highlight language-python"><span class="n">to_python</span><span class="p">(</span><span class="n">file</span><span class="p">)</span></code>
11476
+ <code class="highlight language-python"><span class="n">to_python</span><span class="p">(</span><span class="n">data</span><span class="p">)</span></code>
11327
11477
 
11328
11478
  <a href="#nautobot.apps.forms.CSVFileField.to_python" class="headerlink" title="Permanent link">&para;</a></h3>
11329
11479
 
11330
11480
 
11331
11481
  <div class="doc doc-contents ">
11332
11482
 
11333
- <p>For parity with CSVDataField, this returns the CSV text rather than an UploadedFile object.</p>
11483
+ <p>For parity with CSVDataField, this returns the CSV text rather than an UploadedFile object.</p>
11334
11484
 
11335
11485
  </div>
11336
11486
 
@@ -11357,16 +11507,21 @@ as that is now handled by the NautobotCSVParser class and the REST API serialize
11357
11507
 
11358
11508
  <div class="doc doc-contents ">
11359
11509
  <p class="doc doc-class-bases">
11360
- Bases: <code><autoref identifier="django.forms.ModelChoiceField" optional hover>ModelChoiceField</autoref></code></p>
11510
+ Bases: <code><span title="django.forms.ModelChoiceField">ModelChoiceField</span></code></p>
11361
11511
 
11362
11512
 
11363
- <p>Provides additional validation for model choices entered as CSV data.</p>
11513
+ <p>Provides additional validation for model choices entered as CSV data.</p>
11364
11514
  <p>Note: class name is misleading; the subclass CSVContentTypeField (below) is also used in FilterSets, where it has
11365
11515
  nothing to do with CSV data.</p>
11366
11516
 
11367
11517
 
11368
11518
 
11369
11519
 
11520
+
11521
+
11522
+
11523
+
11524
+
11370
11525
  <div class="doc doc-children">
11371
11526
 
11372
11527
 
@@ -11398,16 +11553,21 @@ nothing to do with CSV data.</p>
11398
11553
 
11399
11554
  <div class="doc doc-contents ">
11400
11555
  <p class="doc doc-class-bases">
11401
- Bases: <code><autoref identifier="django.forms.ModelForm" optional hover>ModelForm</autoref></code></p>
11556
+ Bases: <code><span title="django.forms.ModelForm">ModelForm</span></code></p>
11402
11557
 
11403
11558
 
11404
- <p>ModelForm used for the import of objects.</p>
11559
+ <p>ModelForm used for the import of objects.</p>
11405
11560
  <p>Note: the name is misleading as since 2.0 this is no longer used for CSV imports; however it <em>is</em> still used for
11406
11561
  JSON/YAML imports of DeviceTypes and their component templates.</p>
11407
11562
 
11408
11563
 
11409
11564
 
11410
11565
 
11566
+
11567
+
11568
+
11569
+
11570
+
11411
11571
  <div class="doc doc-children">
11412
11572
 
11413
11573
 
@@ -11439,16 +11599,21 @@ JSON/YAML imports of DeviceTypes and their component templates.</p>
11439
11599
 
11440
11600
  <div class="doc doc-contents ">
11441
11601
  <p class="doc doc-class-bases">
11442
- Bases: <code><autoref identifier="nautobot.core.forms.fields.CSVChoiceField" optional hover>CSVChoiceField</autoref></code></p>
11602
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.forms.fields.CSVChoiceField" href="#nautobot.apps.forms.CSVChoiceField">CSVChoiceField</a></code></p>
11443
11603
 
11444
11604
 
11445
- <p>A version of CSVChoiceField that supports and emits a list of choice values.</p>
11605
+ <p>A version of CSVChoiceField that supports and emits a list of choice values.</p>
11446
11606
  <p>As with CSVChoiceField, the name is misleading, as this is no longer used for CSV imports, but is used for
11447
11607
  JSON/YAML import of DeviceTypes still.</p>
11448
11608
 
11449
11609
 
11450
11610
 
11451
11611
 
11612
+
11613
+
11614
+
11615
+
11616
+
11452
11617
  <div class="doc doc-children">
11453
11618
 
11454
11619
 
@@ -11470,7 +11635,7 @@ JSON/YAML import of DeviceTypes still.</p>
11470
11635
 
11471
11636
  <div class="doc doc-contents ">
11472
11637
 
11473
- <p>Return a list of strings.</p>
11638
+ <p>Return a list of strings.</p>
11474
11639
 
11475
11640
  </div>
11476
11641
 
@@ -11487,7 +11652,7 @@ JSON/YAML import of DeviceTypes still.</p>
11487
11652
 
11488
11653
  <div class="doc doc-contents ">
11489
11654
 
11490
- <p>Validate that each of the input values is in self.choices.</p>
11655
+ <p>Validate that each of the input values is in self.choices.</p>
11491
11656
 
11492
11657
  </div>
11493
11658
 
@@ -11514,16 +11679,21 @@ JSON/YAML import of DeviceTypes still.</p>
11514
11679
 
11515
11680
  <div class="doc doc-contents ">
11516
11681
  <p class="doc doc-class-bases">
11517
- Bases: <code><autoref identifier="nautobot.core.forms.fields.MultipleContentTypeField" optional hover>MultipleContentTypeField</autoref></code></p>
11682
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.forms.fields.MultipleContentTypeField" href="#nautobot.apps.forms.MultipleContentTypeField">MultipleContentTypeField</a></code></p>
11518
11683
 
11519
11684
 
11520
- <p>Reference a list of <code>ContentType</code> objects in the form `{app_label}.{model}'.</p>
11685
+ <p>Reference a list of <code>ContentType</code> objects in the form `{app_label}.{model}'.</p>
11521
11686
  <p>Note: This is unused in Nautobot core at this time, but some apps (data-validation-engine) use this for non-CSV
11522
11687
  purposes, similar to CSVContentTypeField above.</p>
11523
11688
 
11524
11689
 
11525
11690
 
11526
11691
 
11692
+
11693
+
11694
+
11695
+
11696
+
11527
11697
  <div class="doc doc-children">
11528
11698
 
11529
11699
 
@@ -11545,7 +11715,7 @@ purposes, similar to CSVContentTypeField above.</p>
11545
11715
 
11546
11716
  <div class="doc doc-contents ">
11547
11717
 
11548
- <p>Parse a comma-separated string of model names into a list of PKs.</p>
11718
+ <p>Parse a comma-separated string of model names into a list of PKs.</p>
11549
11719
 
11550
11720
  </div>
11551
11721
 
@@ -11572,10 +11742,15 @@ purposes, similar to CSVContentTypeField above.</p>
11572
11742
 
11573
11743
  <div class="doc doc-contents ">
11574
11744
  <p class="doc doc-class-bases">
11575
- Bases: <code><autoref identifier="django.forms.Select" optional hover>Select</autoref></code></p>
11745
+ Bases: <code><span title="django.forms.Select">Select</span></code></p>
11746
+
11747
+
11748
+ <p>Extends the built-in Select widget to colorize each <option>.</p>
11749
+
11750
+
11751
+
11576
11752
 
11577
11753
 
11578
- <p>Extends the built-in Select widget to colorize each <option>.</p>
11579
11754
 
11580
11755
 
11581
11756
 
@@ -11611,10 +11786,15 @@ purposes, similar to CSVContentTypeField above.</p>
11611
11786
 
11612
11787
  <div class="doc doc-contents ">
11613
11788
  <p class="doc doc-class-bases">
11614
- Bases: <code><autoref identifier="django.forms.CharField" optional hover>CharField</autoref></code></p>
11789
+ Bases: <code><span title="django.forms.CharField">CharField</span></code></p>
11790
+
11791
+
11792
+ <p>A textarea with support for Markdown rendering. Exists mostly just to add a standard help_text.</p>
11793
+
11794
+
11795
+
11615
11796
 
11616
11797
 
11617
- <p>A textarea with support for Markdown rendering. Exists mostly just to add a standard help_text.</p>
11618
11798
 
11619
11799
 
11620
11800
 
@@ -11650,10 +11830,15 @@ purposes, similar to CSVContentTypeField above.</p>
11650
11830
 
11651
11831
  <div class="doc doc-contents ">
11652
11832
  <p class="doc doc-class-bases">
11653
- Bases: <code><autoref identifier="nautobot.core.forms.forms.BootstrapMixin" optional hover>BootstrapMixin</autoref></code>, <code><autoref identifier="nautobot.core.forms.forms.ReturnURLForm" optional hover>ReturnURLForm</autoref></code></p>
11833
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.forms.forms.BootstrapMixin" href="#nautobot.apps.forms.BootstrapMixin">BootstrapMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.forms.forms.ReturnURLForm" href="#nautobot.apps.forms.ReturnURLForm">ReturnURLForm</a></code></p>
11834
+
11835
+
11836
+ <p>A generic confirmation form. The form is not valid unless the confirm field is checked.</p>
11837
+
11838
+
11839
+
11654
11840
 
11655
11841
 
11656
- <p>A generic confirmation form. The form is not valid unless the confirm field is checked.</p>
11657
11842
 
11658
11843
 
11659
11844
 
@@ -11689,10 +11874,15 @@ purposes, similar to CSVContentTypeField above.</p>
11689
11874
 
11690
11875
  <div class="doc doc-contents ">
11691
11876
  <p class="doc doc-class-bases">
11692
- Bases: <code><autoref identifier="django.forms.Form" optional hover>Form</autoref></code></p>
11877
+ Bases: <code><span title="django.forms.Form">Form</span></code></p>
11878
+
11879
+
11880
+ <p>Adds the <code>contacts</code> and <code>teams</code> form fields to a filter form.</p>
11881
+
11882
+
11883
+
11693
11884
 
11694
11885
 
11695
- <p>Adds the <code>contacts</code> and <code>teams</code> form fields to a filter form.</p>
11696
11886
 
11697
11887
 
11698
11888
 
@@ -11728,16 +11918,21 @@ purposes, similar to CSVContentTypeField above.</p>
11728
11918
 
11729
11919
  <div class="doc doc-contents ">
11730
11920
  <p class="doc doc-class-bases">
11731
- Bases: <code><autoref identifier="nautobot.core.forms.widgets.StaticSelect2" optional hover>StaticSelect2</autoref></code></p>
11921
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.forms.widgets.StaticSelect2" href="#nautobot.apps.forms.StaticSelect2">StaticSelect2</a></code></p>
11732
11922
 
11733
11923
 
11734
- <p>Appends an <code>api-value</code> attribute equal to the slugified model name for each ContentType. For example:
11924
+ <p>Appends an <code>api-value</code> attribute equal to the slugified model name for each ContentType. For example:
11735
11925
  <option value="37" api-value="console-server-port">console server port</option>
11736
11926
  This attribute can be used to reference the relevant API endpoint for a particular ContentType.</p>
11737
11927
 
11738
11928
 
11739
11929
 
11740
11930
 
11931
+
11932
+
11933
+
11934
+
11935
+
11741
11936
  <div class="doc doc-children">
11742
11937
 
11743
11938
 
@@ -11769,10 +11964,10 @@ This attribute can be used to reference the relevant API endpoint for a particul
11769
11964
 
11770
11965
  <div class="doc doc-contents ">
11771
11966
  <p class="doc doc-class-bases">
11772
- Bases: <code><autoref identifier="nautobot.core.forms.CSVModelForm" optional hover>CSVModelForm</autoref></code>, <code><autoref identifier="nautobot.extras.forms.mixins.CustomFieldModelFormMixin" optional hover>CustomFieldModelFormMixin</autoref></code></p>
11967
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.forms.CSVModelForm" href="#nautobot.apps.forms.CSVModelForm">CSVModelForm</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.extras.forms.mixins.CustomFieldModelFormMixin" href="#nautobot.apps.forms.CustomFieldModelFormMixin">CustomFieldModelFormMixin</a></code></p>
11773
11968
 
11774
11969
 
11775
- <p>Base class for CSV/JSON/YAML import of models that support custom fields.</p>
11970
+ <p>Base class for CSV/JSON/YAML import of models that support custom fields.</p>
11776
11971
  <p>TODO: The class name is a misnomer; as of 2.0 this class is <strong>not</strong> used for any CSV imports,
11777
11972
  as that's now handled by the REST API. However it is still used when importing component-templates as
11778
11973
  part of a JSON/YAML DeviceType import.</p>
@@ -11780,6 +11975,11 @@ part of a JSON/YAML DeviceType import.</p>
11780
11975
 
11781
11976
 
11782
11977
 
11978
+
11979
+
11980
+
11981
+
11982
+
11783
11983
  <div class="doc doc-children">
11784
11984
 
11785
11985
 
@@ -11811,7 +12011,12 @@ part of a JSON/YAML DeviceType import.</p>
11811
12011
 
11812
12012
  <div class="doc doc-contents ">
11813
12013
  <p class="doc doc-class-bases">
11814
- Bases: <code><autoref identifier="django.forms.ModelForm" optional hover>ModelForm</autoref></code></p>
12014
+ Bases: <code><span title="django.forms.ModelForm">ModelForm</span></code></p>
12015
+
12016
+
12017
+
12018
+
12019
+
11815
12020
 
11816
12021
 
11817
12022
 
@@ -11848,10 +12053,15 @@ part of a JSON/YAML DeviceType import.</p>
11848
12053
 
11849
12054
  <div class="doc doc-contents ">
11850
12055
  <p class="doc doc-class-bases">
11851
- Bases: <code><autoref identifier="django.forms.TextInput" optional hover>TextInput</autoref></code></p>
12056
+ Bases: <code><span title="django.forms.TextInput">TextInput</span></code></p>
12057
+
12058
+
12059
+ <p>Date picker using Flatpickr.</p>
12060
+
12061
+
12062
+
11852
12063
 
11853
12064
 
11854
- <p>Date picker using Flatpickr.</p>
11855
12065
 
11856
12066
 
11857
12067
 
@@ -11887,10 +12097,15 @@ part of a JSON/YAML DeviceType import.</p>
11887
12097
 
11888
12098
  <div class="doc doc-contents ">
11889
12099
  <p class="doc doc-class-bases">
11890
- Bases: <code><autoref identifier="django.forms.TextInput" optional hover>TextInput</autoref></code></p>
12100
+ Bases: <code><span title="django.forms.TextInput">TextInput</span></code></p>
12101
+
12102
+
12103
+ <p>DateTime picker using Flatpickr.</p>
12104
+
12105
+
12106
+
11891
12107
 
11892
12108
 
11893
- <p>DateTime picker using Flatpickr.</p>
11894
12109
 
11895
12110
 
11896
12111
 
@@ -11926,10 +12141,15 @@ part of a JSON/YAML DeviceType import.</p>
11926
12141
 
11927
12142
  <div class="doc doc-contents ">
11928
12143
  <p class="doc doc-class-bases">
11929
- Bases: <code><autoref identifier="nautobot.core.forms.forms.BootstrapMixin" optional hover>BootstrapMixin</autoref></code>, <code><autoref identifier="django.forms.Form" optional hover>Form</autoref></code></p>
12144
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.forms.forms.BootstrapMixin" href="#nautobot.apps.forms.BootstrapMixin">BootstrapMixin</a></code>, <code><span title="django.forms.Form">Form</span></code></p>
12145
+
12146
+
12147
+ <p>Form for dynamically inputting filter values for an object list.</p>
12148
+
12149
+
12150
+
11930
12151
 
11931
12152
 
11932
- <p>Form for dynamically inputting filter values for an object list.</p>
11933
12153
 
11934
12154
 
11935
12155
 
@@ -11965,10 +12185,15 @@ part of a JSON/YAML DeviceType import.</p>
11965
12185
 
11966
12186
  <div class="doc doc-contents ">
11967
12187
  <p class="doc doc-class-bases">
11968
- Bases: <code><autoref identifier="django.forms.ModelForm" optional hover>ModelForm</autoref></code></p>
12188
+ Bases: <code><span title="django.forms.ModelForm">ModelForm</span></code></p>
12189
+
12190
+
12191
+ <p>Mixin to add <code>dynamic_groups</code> field to model create/edit forms where applicable.</p>
12192
+
12193
+
12194
+
11969
12195
 
11970
12196
 
11971
- <p>Mixin to add <code>dynamic_groups</code> field to model create/edit forms where applicable.</p>
11972
12197
 
11973
12198
 
11974
12199
 
@@ -12004,15 +12229,20 @@ part of a JSON/YAML DeviceType import.</p>
12004
12229
 
12005
12230
  <div class="doc doc-contents ">
12006
12231
  <p class="doc doc-class-bases">
12007
- Bases: <code><autoref identifier="nautobot.core.forms.fields.DynamicModelChoiceMixin" optional hover>DynamicModelChoiceMixin</autoref></code>, <code><autoref identifier="django.forms.ModelChoiceField" optional hover>ModelChoiceField</autoref></code></p>
12232
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.forms.fields.DynamicModelChoiceMixin" href="#nautobot.apps.forms.DynamicModelChoiceMixin">DynamicModelChoiceMixin</a></code>, <code><span title="django.forms.ModelChoiceField">ModelChoiceField</span></code></p>
12008
12233
 
12009
12234
 
12010
- <p>Override get_bound_field() to avoid pre-populating field choices with a SQL query. The field will be
12235
+ <p>Override get_bound_field() to avoid pre-populating field choices with a SQL query. The field will be
12011
12236
  rendered only with choices set via bound data. Choices are populated on-demand via the APISelect widget.</p>
12012
12237
 
12013
12238
 
12014
12239
 
12015
12240
 
12241
+
12242
+
12243
+
12244
+
12245
+
12016
12246
  <div class="doc doc-children">
12017
12247
 
12018
12248
 
@@ -12034,7 +12264,7 @@ rendered only with choices set via bound data. Choices are populated on-demand v
12034
12264
 
12035
12265
  <div class="doc doc-contents ">
12036
12266
 
12037
- <p>When null option is enabled and "None" is sent as part of a form to be submitted, it is sent as the
12267
+ <p>When null option is enabled and "None" is sent as part of a form to be submitted, it is sent as the
12038
12268
  string 'null'. This will check for that condition and gracefully handle the conversion to a NoneType.</p>
12039
12269
 
12040
12270
  </div>
@@ -12063,7 +12293,7 @@ string 'null'. This will check for that condition and gracefully handle the con
12063
12293
  <div class="doc doc-contents ">
12064
12294
 
12065
12295
 
12066
- <p>:param display_field: The name of the attribute of an API response object to display in the selection list
12296
+ <p>:param display_field: The name of the attribute of an API response object to display in the selection list
12067
12297
  :param query_params: A dictionary of additional key/value pairs to attach to the API request
12068
12298
  :param initial_params: A dictionary of child field references to use for selecting a parent field's initial value
12069
12299
  :param null_option: The string used to represent a null selection (if any)
@@ -12074,6 +12304,11 @@ string 'null'. This will check for that condition and gracefully handle the con
12074
12304
 
12075
12305
 
12076
12306
 
12307
+
12308
+
12309
+
12310
+
12311
+
12077
12312
  <div class="doc doc-children">
12078
12313
 
12079
12314
 
@@ -12095,7 +12330,7 @@ string 'null'. This will check for that condition and gracefully handle the con
12095
12330
 
12096
12331
  <div class="doc doc-contents ">
12097
12332
 
12098
- <p>Augment the behavior of forms.ModelChoiceField.prepare_value().</p>
12333
+ <p>Augment the behavior of forms.ModelChoiceField.prepare_value().</p>
12099
12334
  <p>Specifically, if <code>value</code> is a PK, but we have <code>to_field_name</code> set, we need to look up the model instance
12100
12335
  from the given PK, so that the base class will get the appropriate field value rather than just keeping the PK,
12101
12336
  because the rendered form field needs this in order to correctly prepopulate a default selection.</p>
@@ -12125,10 +12360,15 @@ because the rendered form field needs this in order to correctly prepopulate a d
12125
12360
 
12126
12361
  <div class="doc doc-contents ">
12127
12362
  <p class="doc doc-class-bases">
12128
- Bases: <code><autoref identifier="nautobot.core.forms.fields.DynamicModelChoiceMixin" optional hover>DynamicModelChoiceMixin</autoref></code>, <code><autoref identifier="django.forms.ModelMultipleChoiceField" optional hover>ModelMultipleChoiceField</autoref></code></p>
12363
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.forms.fields.DynamicModelChoiceMixin" href="#nautobot.apps.forms.DynamicModelChoiceMixin">DynamicModelChoiceMixin</a></code>, <code><span title="django.forms.ModelMultipleChoiceField">ModelMultipleChoiceField</span></code></p>
12364
+
12365
+
12366
+ <p>A multiple-choice version of DynamicModelChoiceField.</p>
12367
+
12368
+
12369
+
12129
12370
 
12130
12371
 
12131
- <p>A multiple-choice version of DynamicModelChoiceField.</p>
12132
12372
 
12133
12373
 
12134
12374
 
@@ -12164,15 +12404,20 @@ because the rendered form field needs this in order to correctly prepopulate a d
12164
12404
 
12165
12405
  <div class="doc doc-contents ">
12166
12406
  <p class="doc doc-class-bases">
12167
- Bases: <code><autoref identifier="django.forms.CharField" optional hover>CharField</autoref></code></p>
12407
+ Bases: <code><span title="django.forms.CharField">CharField</span></code></p>
12168
12408
 
12169
12409
 
12170
- <p>A field which allows for expansion of IP address ranges
12410
+ <p>A field which allows for expansion of IP address ranges
12171
12411
  Example: '192.0.2.[1-254]/24' =&gt; ['192.0.2.1/24', '192.0.2.2/24', '192.0.2.3/24' ... '192.0.2.254/24']</p>
12172
12412
 
12173
12413
 
12174
12414
 
12175
12415
 
12416
+
12417
+
12418
+
12419
+
12420
+
12176
12421
  <div class="doc doc-children">
12177
12422
 
12178
12423
 
@@ -12204,15 +12449,20 @@ because the rendered form field needs this in order to correctly prepopulate a d
12204
12449
 
12205
12450
  <div class="doc doc-contents ">
12206
12451
  <p class="doc doc-class-bases">
12207
- Bases: <code><autoref identifier="django.forms.CharField" optional hover>CharField</autoref></code></p>
12452
+ Bases: <code><span title="django.forms.CharField">CharField</span></code></p>
12208
12453
 
12209
12454
 
12210
- <p>A field which allows for numeric range expansion
12455
+ <p>A field which allows for numeric range expansion
12211
12456
  Example: 'Gi0/[1-3]' =&gt; ['Gi0/1', 'Gi0/2', 'Gi0/3']</p>
12212
12457
 
12213
12458
 
12214
12459
 
12215
12460
 
12461
+
12462
+
12463
+
12464
+
12465
+
12216
12466
  <div class="doc doc-children">
12217
12467
 
12218
12468
 
@@ -12244,10 +12494,15 @@ because the rendered form field needs this in order to correctly prepopulate a d
12244
12494
 
12245
12495
  <div class="doc doc-contents ">
12246
12496
  <p class="doc doc-class-bases">
12247
- Bases: <code><autoref identifier="nautobot.core.forms.forms.BootstrapMixin" optional hover>BootstrapMixin</autoref></code>, <code><autoref identifier="django.forms.Form" optional hover>Form</autoref></code></p>
12497
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.forms.forms.BootstrapMixin" href="#nautobot.apps.forms.BootstrapMixin">BootstrapMixin</a></code>, <code><span title="django.forms.Form">Form</span></code></p>
12498
+
12499
+
12500
+ <p>Generic form for creating an object from JSON/YAML data</p>
12501
+
12502
+
12503
+
12248
12504
 
12249
12505
 
12250
- <p>Generic form for creating an object from JSON/YAML data</p>
12251
12506
 
12252
12507
 
12253
12508
 
@@ -12283,16 +12538,21 @@ because the rendered form field needs this in order to correctly prepopulate a d
12283
12538
 
12284
12539
  <div class="doc doc-contents ">
12285
12540
  <p class="doc doc-class-bases">
12286
- Bases: <code><autoref identifier="django.forms.JSONField" optional hover>JSONField</autoref></code></p>
12541
+ Bases: <code><span title="django.forms.JSONField">JSONField</span></code></p>
12287
12542
 
12288
12543
 
12289
- <p>A FormField counterpart to JSONArrayField.
12544
+ <p>A FormField counterpart to JSONArrayField.
12290
12545
  Replicates ArrayFormField's base field validation: Field values are validated as JSON Arrays,
12291
12546
  and each Array element is validated by <code>base_field</code> validators.</p>
12292
12547
 
12293
12548
 
12294
12549
 
12295
12550
 
12551
+
12552
+
12553
+
12554
+
12555
+
12296
12556
  <div class="doc doc-children">
12297
12557
 
12298
12558
 
@@ -12314,7 +12574,7 @@ and each Array element is validated by <code>base_field</code> validators.</p>
12314
12574
 
12315
12575
  <div class="doc doc-contents ">
12316
12576
 
12317
- <p>Validate <code>value</code> and return its "cleaned" value as an appropriate
12577
+ <p>Validate <code>value</code> and return its "cleaned" value as an appropriate
12318
12578
  Python object. Raise ValidationError for any errors.</p>
12319
12579
 
12320
12580
  </div>
@@ -12332,7 +12592,7 @@ Python object. Raise ValidationError for any errors.</p>
12332
12592
 
12333
12593
  <div class="doc doc-contents ">
12334
12594
 
12335
- <p>Return True if <code>data</code> differs from <code>initial</code>.</p>
12595
+ <p>Return True if <code>data</code> differs from <code>initial</code>.</p>
12336
12596
 
12337
12597
  </div>
12338
12598
 
@@ -12349,7 +12609,7 @@ Python object. Raise ValidationError for any errors.</p>
12349
12609
 
12350
12610
  <div class="doc doc-contents ">
12351
12611
 
12352
- <p>Return a string of this value.</p>
12612
+ <p>Return a string of this value.</p>
12353
12613
 
12354
12614
  </div>
12355
12615
 
@@ -12366,7 +12626,7 @@ Python object. Raise ValidationError for any errors.</p>
12366
12626
 
12367
12627
  <div class="doc doc-contents ">
12368
12628
 
12369
- <p>Runs all validators against <code>value</code> and raise ValidationError if necessary.
12629
+ <p>Runs all validators against <code>value</code> and raise ValidationError if necessary.
12370
12630
  Some validators can't be created at field initialization time.</p>
12371
12631
 
12372
12632
  </div>
@@ -12384,7 +12644,7 @@ Some validators can't be created at field initialization time.</p>
12384
12644
 
12385
12645
  <div class="doc doc-contents ">
12386
12646
 
12387
- <p>Convert <code>value</code> into JSON, raising django.core.exceptions.ValidationError
12647
+ <p>Convert <code>value</code> into JSON, raising django.core.exceptions.ValidationError
12388
12648
  if the data can't be converted. Return the converted value.</p>
12389
12649
 
12390
12650
  </div>
@@ -12402,7 +12662,7 @@ if the data can't be converted. Return the converted value.</p>
12402
12662
 
12403
12663
  <div class="doc doc-contents ">
12404
12664
 
12405
- <p>Check to see if the provided value is a valid choice.</p>
12665
+ <p>Check to see if the provided value is a valid choice.</p>
12406
12666
 
12407
12667
  </div>
12408
12668
 
@@ -12419,7 +12679,7 @@ if the data can't be converted. Return the converted value.</p>
12419
12679
 
12420
12680
  <div class="doc doc-contents ">
12421
12681
 
12422
- <p>Validate <code>value</code> and raise ValidationError if necessary.</p>
12682
+ <p>Validate <code>value</code> and raise ValidationError if necessary.</p>
12423
12683
 
12424
12684
  </div>
12425
12685
 
@@ -12446,10 +12706,15 @@ if the data can't be converted. Return the converted value.</p>
12446
12706
 
12447
12707
  <div class="doc doc-contents ">
12448
12708
  <p class="doc doc-class-bases">
12449
- Bases: <code><autoref identifier="django.forms.fields.JSONField" optional hover>JSONField</autoref></code></p>
12709
+ Bases: <code><span title="django.forms.fields.JSONField">JSONField</span></code></p>
12710
+
12711
+
12712
+ <p>Custom wrapper around Django's built-in JSONField to avoid presenting "null" as the default text.</p>
12713
+
12714
+
12715
+
12450
12716
 
12451
12717
 
12452
- <p>Custom wrapper around Django's built-in JSONField to avoid presenting "null" as the default text.</p>
12453
12718
 
12454
12719
 
12455
12720
 
@@ -12485,15 +12750,20 @@ if the data can't be converted. Return the converted value.</p>
12485
12750
 
12486
12751
  <div class="doc doc-contents ">
12487
12752
  <p class="doc doc-class-bases">
12488
- Bases: <code><autoref identifier="django.forms.URLField" optional hover>URLField</autoref></code></p>
12753
+ Bases: <code><span title="django.forms.URLField">URLField</span></code></p>
12489
12754
 
12490
12755
 
12491
- <p>Modifies Django's built-in URLField to remove the requirement for fully-qualified domain names
12756
+ <p>Modifies Django's built-in URLField to remove the requirement for fully-qualified domain names
12492
12757
  (e.g. http://myserver/ is valid)</p>
12493
12758
 
12494
12759
 
12495
12760
 
12496
12761
 
12762
+
12763
+
12764
+
12765
+
12766
+
12497
12767
  <div class="doc doc-children">
12498
12768
 
12499
12769
 
@@ -12525,15 +12795,20 @@ if the data can't be converted. Return the converted value.</p>
12525
12795
 
12526
12796
  <div class="doc doc-contents ">
12527
12797
  <p class="doc doc-class-bases">
12528
- Bases: <code><autoref identifier="nautobot.core.forms.fields.DynamicModelChoiceMixin" optional hover>DynamicModelChoiceMixin</autoref></code>, <code><autoref identifier="django_filters.fields.ModelMultipleChoiceField" optional hover>ModelMultipleChoiceField</autoref></code></p>
12798
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.forms.fields.DynamicModelChoiceMixin" href="#nautobot.apps.forms.DynamicModelChoiceMixin">DynamicModelChoiceMixin</a></code>, <code><span title="django_filters.fields.ModelMultipleChoiceField">ModelMultipleChoiceField</span></code></p>
12529
12799
 
12530
12800
 
12531
- <p>Filter field to support matching on the PK <em>or</em> <code>to_field_name</code> fields (defaulting to <code>slug</code> if not specified).</p>
12801
+ <p>Filter field to support matching on the PK <em>or</em> <code>to_field_name</code> fields (defaulting to <code>slug</code> if not specified).</p>
12532
12802
  <p>Raises ValidationError if none of the fields match the requested value.</p>
12533
12803
 
12534
12804
 
12535
12805
 
12536
12806
 
12807
+
12808
+
12809
+
12810
+
12811
+
12537
12812
  <div class="doc doc-children">
12538
12813
 
12539
12814
 
@@ -12565,15 +12840,20 @@ if the data can't be converted. Return the converted value.</p>
12565
12840
 
12566
12841
  <div class="doc doc-contents ">
12567
12842
  <p class="doc doc-class-bases">
12568
- Bases: <code><autoref identifier="django.forms.CharField" optional hover>CharField</autoref></code></p>
12843
+ Bases: <code><span title="django.forms.CharField">CharField</span></code></p>
12569
12844
 
12570
12845
 
12571
- <p>CharField that takes multiple user character inputs and render them as tags in the form field.
12846
+ <p>CharField that takes multiple user character inputs and render them as tags in the form field.
12572
12847
  Press enter to complete an input.</p>
12573
12848
 
12574
12849
 
12575
12850
 
12576
12851
 
12852
+
12853
+
12854
+
12855
+
12856
+
12577
12857
  <div class="doc doc-children">
12578
12858
 
12579
12859
 
@@ -12605,15 +12885,20 @@ Press enter to complete an input.</p>
12605
12885
 
12606
12886
  <div class="doc doc-contents ">
12607
12887
  <p class="doc doc-class-bases">
12608
- Bases: <code><autoref identifier="nautobot.core.forms.widgets.StaticSelect2Multiple" optional hover>StaticSelect2Multiple</autoref></code></p>
12888
+ Bases: <code><span title="nautobot.core.forms.widgets.StaticSelect2Multiple">StaticSelect2Multiple</span></code></p>
12609
12889
 
12610
12890
 
12611
- <p>Manual text input with tagging enabled.
12891
+ <p>Manual text input with tagging enabled.
12612
12892
  Press enter to create a new entry.</p>
12613
12893
 
12614
12894
 
12615
12895
 
12616
12896
 
12897
+
12898
+
12899
+
12900
+
12901
+
12617
12902
  <div class="doc doc-children">
12618
12903
 
12619
12904
 
@@ -12645,16 +12930,21 @@ Press enter to create a new entry.</p>
12645
12930
 
12646
12931
  <div class="doc doc-contents ">
12647
12932
  <p class="doc doc-class-bases">
12648
- Bases: <code><autoref identifier="django.forms.ModelMultipleChoiceField" optional hover>ModelMultipleChoiceField</autoref></code></p>
12933
+ Bases: <code><span title="django.forms.ModelMultipleChoiceField">ModelMultipleChoiceField</span></code></p>
12649
12934
 
12650
12935
 
12651
- <p>Field for choosing any number of <code>ContentType</code> objects.</p>
12936
+ <p>Field for choosing any number of <code>ContentType</code> objects.</p>
12652
12937
  <p>Optionally can restrict the available ContentTypes to those supporting a particular feature only.
12653
12938
  Optionally can pass the selection through as a list of <code>{app_label}.{model}</code> strings instead of PK values.</p>
12654
12939
 
12655
12940
 
12656
12941
 
12657
12942
 
12943
+
12944
+
12945
+
12946
+
12947
+
12658
12948
  <div class="doc doc-children">
12659
12949
 
12660
12950
 
@@ -12676,7 +12966,7 @@ Optionally can pass the selection through as a list of <code>{app_label}.{model}
12676
12966
 
12677
12967
  <div class="doc doc-contents ">
12678
12968
 
12679
- <p>Construct a MultipleContentTypeField.</p>
12969
+ <p>Construct a MultipleContentTypeField.</p>
12680
12970
 
12681
12971
 
12682
12972
  <p><span class="doc-section-title">Parameters:</span></p>
@@ -12691,9 +12981,11 @@ Optionally can pass the selection through as a list of <code>{app_label}.{model}
12691
12981
  </thead>
12692
12982
  <tbody>
12693
12983
  <tr class="doc-section-item">
12694
- <td><code>feature</code></td>
12695
12984
  <td>
12696
- <code><autoref identifier="str" optional>str</autoref></code>
12985
+ <code>feature</code>
12986
+ </td>
12987
+ <td>
12988
+ <code>str</code>
12697
12989
  </td>
12698
12990
  <td>
12699
12991
  <div class="doc-md-description">
@@ -12705,9 +12997,11 @@ Optionally can pass the selection through as a list of <code>{app_label}.{model}
12705
12997
  </td>
12706
12998
  </tr>
12707
12999
  <tr class="doc-section-item">
12708
- <td><code>choices_as_strings</code></td>
12709
13000
  <td>
12710
- <code><autoref identifier="bool" optional>bool</autoref></code>
13001
+ <code>choices_as_strings</code>
13002
+ </td>
13003
+ <td>
13004
+ <code>bool</code>
12711
13005
  </td>
12712
13006
  <td>
12713
13007
  <div class="doc-md-description">
@@ -12746,10 +13040,15 @@ Optionally can pass the selection through as a list of <code>{app_label}.{model}
12746
13040
 
12747
13041
  <div class="doc doc-contents ">
12748
13042
  <p class="doc doc-class-bases">
12749
- Bases: <code><autoref identifier="nautobot.core.forms.BootstrapMixin" optional hover>BootstrapMixin</autoref></code>, <code><autoref identifier="nautobot.extras.forms.mixins.CustomFieldModelBulkEditFormMixin" optional hover>CustomFieldModelBulkEditFormMixin</autoref></code>, <code><autoref identifier="nautobot.extras.forms.mixins.NoteModelBulkEditFormMixin" optional hover>NoteModelBulkEditFormMixin</autoref></code>, <code><autoref identifier="nautobot.extras.forms.mixins.RelationshipModelBulkEditFormMixin" optional hover>RelationshipModelBulkEditFormMixin</autoref></code></p>
13043
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.forms.BootstrapMixin" href="#nautobot.apps.forms.BootstrapMixin">BootstrapMixin</a></code>, <code><span title="nautobot.extras.forms.mixins.CustomFieldModelBulkEditFormMixin">CustomFieldModelBulkEditFormMixin</span></code>, <code><a class="autorefs autorefs-internal" title="nautobot.extras.forms.mixins.NoteModelBulkEditFormMixin" href="#nautobot.apps.forms.NoteModelBulkEditFormMixin">NoteModelBulkEditFormMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.extras.forms.mixins.RelationshipModelBulkEditFormMixin" href="#nautobot.apps.forms.RelationshipModelBulkEditFormMixin">RelationshipModelBulkEditFormMixin</a></code></p>
13044
+
13045
+
13046
+ <p>Base class for bulk-edit forms for models that support relationships, custom fields and notes.</p>
13047
+
13048
+
13049
+
12750
13050
 
12751
13051
 
12752
- <p>Base class for bulk-edit forms for models that support relationships, custom fields and notes.</p>
12753
13052
 
12754
13053
 
12755
13054
 
@@ -12785,16 +13084,21 @@ Optionally can pass the selection through as a list of <code>{app_label}.{model}
12785
13084
 
12786
13085
  <div class="doc doc-contents ">
12787
13086
  <p class="doc doc-class-bases">
12788
- Bases: <code><autoref identifier="nautobot.core.forms.BootstrapMixin" optional hover>BootstrapMixin</autoref></code>, <code><autoref identifier="nautobot.extras.forms.mixins.ContactTeamModelFilterFormMixin" optional hover>ContactTeamModelFilterFormMixin</autoref></code>, <code><autoref identifier="nautobot.extras.forms.mixins.CustomFieldModelFilterFormMixin" optional hover>CustomFieldModelFilterFormMixin</autoref></code>, <code><autoref identifier="nautobot.extras.forms.mixins.RelationshipModelFilterFormMixin" optional hover>RelationshipModelFilterFormMixin</autoref></code></p>
13087
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.forms.BootstrapMixin" href="#nautobot.apps.forms.BootstrapMixin">BootstrapMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.extras.forms.mixins.ContactTeamModelFilterFormMixin" href="#nautobot.apps.forms.ContactTeamModelFilterFormMixin">ContactTeamModelFilterFormMixin</a></code>, <code><span title="nautobot.extras.forms.mixins.CustomFieldModelFilterFormMixin">CustomFieldModelFilterFormMixin</span></code>, <code><a class="autorefs autorefs-internal" title="nautobot.extras.forms.mixins.RelationshipModelFilterFormMixin" href="#nautobot.apps.forms.RelationshipModelFilterFormMixin">RelationshipModelFilterFormMixin</a></code></p>
12789
13088
 
12790
13089
 
12791
- <p>This class exists to combine common functionality and is used to inherit from throughout the
13090
+ <p>This class exists to combine common functionality and is used to inherit from throughout the
12792
13091
  codebase where all of ContactTeamModelFilterFormMixin, CustomFieldModelFilterFormMixin, and
12793
13092
  RelationshipModelFilterFormMixin are needed.</p>
12794
13093
 
12795
13094
 
12796
13095
 
12797
13096
 
13097
+
13098
+
13099
+
13100
+
13101
+
12798
13102
  <div class="doc doc-children">
12799
13103
 
12800
13104
 
@@ -12826,16 +13130,21 @@ RelationshipModelFilterFormMixin are needed.</p>
12826
13130
 
12827
13131
  <div class="doc doc-contents ">
12828
13132
  <p class="doc doc-class-bases">
12829
- Bases: <code><autoref identifier="nautobot.core.forms.BootstrapMixin" optional hover>BootstrapMixin</autoref></code>, <code><autoref identifier="nautobot.extras.forms.mixins.CustomFieldModelFormMixin" optional hover>CustomFieldModelFormMixin</autoref></code>, <code><autoref identifier="nautobot.extras.forms.mixins.DynamicGroupModelFormMixin" optional hover>DynamicGroupModelFormMixin</autoref></code>, <code><autoref identifier="nautobot.extras.forms.mixins.NoteModelFormMixin" optional hover>NoteModelFormMixin</autoref></code>, <code><autoref identifier="nautobot.extras.forms.mixins.RelationshipModelFormMixin" optional hover>RelationshipModelFormMixin</autoref></code></p>
13133
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.forms.BootstrapMixin" href="#nautobot.apps.forms.BootstrapMixin">BootstrapMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.extras.forms.mixins.CustomFieldModelFormMixin" href="#nautobot.apps.forms.CustomFieldModelFormMixin">CustomFieldModelFormMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.extras.forms.mixins.DynamicGroupModelFormMixin" href="#nautobot.apps.forms.DynamicGroupModelFormMixin">DynamicGroupModelFormMixin</a></code>, <code><span title="nautobot.extras.forms.mixins.NoteModelFormMixin">NoteModelFormMixin</span></code>, <code><a class="autorefs autorefs-internal" title="nautobot.extras.forms.mixins.RelationshipModelFormMixin" href="#nautobot.apps.forms.RelationshipModelFormMixin">RelationshipModelFormMixin</a></code></p>
12830
13134
 
12831
13135
 
12832
- <p>This class exists to combine common functionality and is used to inherit from throughout the
13136
+ <p>This class exists to combine common functionality and is used to inherit from throughout the
12833
13137
  codebase where all of BootstrapMixin, CustomFieldModelFormMixin, RelationshipModelFormMixin, and
12834
13138
  NoteModelFormMixin are needed.</p>
12835
13139
 
12836
13140
 
12837
13141
 
12838
13142
 
13143
+
13144
+
13145
+
13146
+
13147
+
12839
13148
  <div class="doc doc-children">
12840
13149
 
12841
13150
 
@@ -12867,10 +13176,15 @@ NoteModelFormMixin are needed.</p>
12867
13176
 
12868
13177
  <div class="doc doc-contents ">
12869
13178
  <p class="doc doc-class-bases">
12870
- Bases: <code><autoref identifier="django.forms.Form" optional hover>Form</autoref></code></p>
13179
+ Bases: <code><span title="django.forms.Form">Form</span></code></p>
13180
+
13181
+
13182
+ <p>Base for the NoteModelFormMixin and NoteModelBulkEditFormMixin.</p>
13183
+
13184
+
13185
+
12871
13186
 
12872
13187
 
12873
- <p>Base for the NoteModelFormMixin and NoteModelBulkEditFormMixin.</p>
12874
13188
 
12875
13189
 
12876
13190
 
@@ -12906,10 +13220,15 @@ NoteModelFormMixin are needed.</p>
12906
13220
 
12907
13221
  <div class="doc doc-contents ">
12908
13222
  <p class="doc doc-class-bases">
12909
- Bases: <code><autoref identifier="nautobot.core.forms.BulkEditForm" optional hover>BulkEditForm</autoref></code>, <code><autoref identifier="nautobot.extras.forms.mixins.NoteFormBase" optional hover>NoteFormBase</autoref></code></p>
13223
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.forms.BulkEditForm" href="#nautobot.apps.forms.BulkEditForm">BulkEditForm</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.extras.forms.mixins.NoteFormBase" href="#nautobot.apps.forms.NoteFormBase">NoteFormBase</a></code></p>
13224
+
13225
+
13226
+ <p>Bulk-edit form mixin for models that support Notes.</p>
13227
+
13228
+
13229
+
12910
13230
 
12911
13231
 
12912
- <p>Bulk-edit form mixin for models that support Notes.</p>
12913
13232
 
12914
13233
 
12915
13234
 
@@ -12945,10 +13264,15 @@ NoteModelFormMixin are needed.</p>
12945
13264
 
12946
13265
  <div class="doc doc-contents ">
12947
13266
  <p class="doc doc-class-bases">
12948
- Bases: <code><autoref identifier="django.contrib.postgres.forms.SimpleArrayField" optional hover>SimpleArrayField</autoref></code></p>
13267
+ Bases: <code><span title="django.contrib.postgres.forms.SimpleArrayField">SimpleArrayField</span></code></p>
13268
+
13269
+
13270
+ <p>Basic array field that takes comma-separated or hyphenated ranges.</p>
13271
+
13272
+
13273
+
12949
13274
 
12950
13275
 
12951
- <p>Basic array field that takes comma-separated or hyphenated ranges.</p>
12952
13276
 
12953
13277
 
12954
13278
 
@@ -12984,10 +13308,15 @@ NoteModelFormMixin are needed.</p>
12984
13308
 
12985
13309
  <div class="doc doc-contents ">
12986
13310
  <p class="doc doc-class-bases">
12987
- Bases: <code><autoref identifier="django.forms.ModelForm" optional hover>ModelForm</autoref></code></p>
13311
+ Bases: <code><span title="django.forms.ModelForm">ModelForm</span></code></p>
13312
+
13313
+
13314
+ <p>ModelForm mixin for IPNetwork based models.</p>
13315
+
13316
+
13317
+
12988
13318
 
12989
13319
 
12990
- <p>ModelForm mixin for IPNetwork based models.</p>
12991
13320
 
12992
13321
 
12993
13322
 
@@ -13023,10 +13352,15 @@ NoteModelFormMixin are needed.</p>
13023
13352
 
13024
13353
  <div class="doc doc-contents ">
13025
13354
  <p class="doc doc-class-bases">
13026
- Bases: <code><autoref identifier="nautobot.core.forms.BulkEditForm" optional hover>BulkEditForm</autoref></code></p>
13355
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.forms.BulkEditForm" href="#nautobot.apps.forms.BulkEditForm">BulkEditForm</a></code></p>
13356
+
13357
+
13358
+ <p>Bulk-edit form mixin for models that support Relationships.</p>
13359
+
13360
+
13361
+
13027
13362
 
13028
13363
 
13029
- <p>Bulk-edit form mixin for models that support Relationships.</p>
13030
13364
 
13031
13365
 
13032
13366
 
@@ -13052,7 +13386,7 @@ NoteModelFormMixin are needed.</p>
13052
13386
 
13053
13387
  <div class="doc doc-contents ">
13054
13388
 
13055
- <p>Helper method to be called from BulkEditView.post().</p>
13389
+ <p>Helper method to be called from BulkEditView.post().</p>
13056
13390
 
13057
13391
  </div>
13058
13392
 
@@ -13079,7 +13413,12 @@ NoteModelFormMixin are needed.</p>
13079
13413
 
13080
13414
  <div class="doc doc-contents ">
13081
13415
  <p class="doc doc-class-bases">
13082
- Bases: <code><autoref identifier="django.forms.Form" optional hover>Form</autoref></code></p>
13416
+ Bases: <code><span title="django.forms.Form">Form</span></code></p>
13417
+
13418
+
13419
+
13420
+
13421
+
13083
13422
 
13084
13423
 
13085
13424
 
@@ -13116,7 +13455,12 @@ NoteModelFormMixin are needed.</p>
13116
13455
 
13117
13456
  <div class="doc doc-contents ">
13118
13457
  <p class="doc doc-class-bases">
13119
- Bases: <code><autoref identifier="django.forms.ModelForm" optional hover>ModelForm</autoref></code></p>
13458
+ Bases: <code><span title="django.forms.ModelForm">ModelForm</span></code></p>
13459
+
13460
+
13461
+
13462
+
13463
+
13120
13464
 
13121
13465
 
13122
13466
 
@@ -13143,7 +13487,7 @@ NoteModelFormMixin are needed.</p>
13143
13487
 
13144
13488
  <div class="doc doc-contents ">
13145
13489
 
13146
- <p>First check for any required relationships errors and if there are any, add them via form field errors.
13490
+ <p>First check for any required relationships errors and if there are any, add them via form field errors.
13147
13491
  Then verify that any requested RelationshipAssociations do not violate relationship cardinality restrictions.</p>
13148
13492
  <ul>
13149
13493
  <li>For TYPE_ONE_TO_MANY and TYPE_ONE_TO_ONE relations, if the form's object is on the "source" side of
@@ -13179,10 +13523,15 @@ Then verify that any requested RelationshipAssociations do not violate relations
13179
13523
 
13180
13524
  <div class="doc doc-contents ">
13181
13525
  <p class="doc doc-class-bases">
13182
- Bases: <code><autoref identifier="django.forms.Form" optional hover>Form</autoref></code></p>
13526
+ Bases: <code><span title="django.forms.Form">Form</span></code></p>
13527
+
13528
+
13529
+ <p>Provides a hidden return URL field to control where the user is directed after the form is submitted.</p>
13530
+
13531
+
13532
+
13183
13533
 
13184
13534
 
13185
- <p>Provides a hidden return URL field to control where the user is directed after the form is submitted.</p>
13186
13535
 
13187
13536
 
13188
13537
 
@@ -13218,10 +13567,15 @@ Then verify that any requested RelationshipAssociations do not violate relations
13218
13567
 
13219
13568
  <div class="doc doc-contents ">
13220
13569
  <p class="doc doc-class-bases">
13221
- Bases: <code><autoref identifier="django.forms.Form" optional hover>Form</autoref></code></p>
13570
+ Bases: <code><span title="django.forms.Form">Form</span></code></p>
13571
+
13572
+
13573
+ <p>Mixin to add non-required <code>role</code> choice field to forms.</p>
13574
+
13575
+
13576
+
13222
13577
 
13223
13578
 
13224
- <p>Mixin to add non-required <code>role</code> choice field to forms.</p>
13225
13579
 
13226
13580
 
13227
13581
 
@@ -13257,10 +13611,15 @@ Then verify that any requested RelationshipAssociations do not violate relations
13257
13611
 
13258
13612
  <div class="doc doc-contents ">
13259
13613
  <p class="doc doc-class-bases">
13260
- Bases: <code><autoref identifier="django.forms.Form" optional hover>Form</autoref></code></p>
13614
+ Bases: <code><span title="django.forms.Form">Form</span></code></p>
13615
+
13616
+
13617
+ <p>Mixin to add non-required <code>role</code> multiple-choice field to filter forms.</p>
13618
+
13619
+
13620
+
13261
13621
 
13262
13622
 
13263
- <p>Mixin to add non-required <code>role</code> multiple-choice field to filter forms.</p>
13264
13623
 
13265
13624
 
13266
13625
 
@@ -13296,15 +13655,20 @@ Then verify that any requested RelationshipAssociations do not violate relations
13296
13655
 
13297
13656
  <div class="doc doc-contents ">
13298
13657
  <p class="doc doc-class-bases">
13299
- Bases: <code><autoref identifier="django.forms.Select" optional hover>Select</autoref></code></p>
13658
+ Bases: <code><span title="django.forms.Select">Select</span></code></p>
13300
13659
 
13301
13660
 
13302
- <p>Modified the stock Select widget to accept choices using a dict() for a label. The dict for each option must include
13661
+ <p>Modified the stock Select widget to accept choices using a dict() for a label. The dict for each option must include
13303
13662
  'label' (string) and 'disabled' (boolean).</p>
13304
13663
 
13305
13664
 
13306
13665
 
13307
13666
 
13667
+
13668
+
13669
+
13670
+
13671
+
13308
13672
  <div class="doc doc-children">
13309
13673
 
13310
13674
 
@@ -13336,10 +13700,15 @@ Then verify that any requested RelationshipAssociations do not violate relations
13336
13700
 
13337
13701
  <div class="doc doc-contents ">
13338
13702
  <p class="doc doc-class-bases">
13339
- Bases: <code><autoref identifier="nautobot.core.forms.widgets.StaticSelect2" optional hover>StaticSelect2</autoref></code></p>
13703
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.forms.widgets.StaticSelect2" href="#nautobot.apps.forms.StaticSelect2">StaticSelect2</a></code></p>
13704
+
13705
+
13706
+ <p>Include the primary key of each option in the option label (e.g. "Router7 (4721)").</p>
13707
+
13708
+
13709
+
13340
13710
 
13341
13711
 
13342
- <p>Include the primary key of each option in the option label (e.g. "Router7 (4721)").</p>
13343
13712
 
13344
13713
 
13345
13714
 
@@ -13375,10 +13744,15 @@ Then verify that any requested RelationshipAssociations do not violate relations
13375
13744
 
13376
13745
  <div class="doc doc-contents ">
13377
13746
  <p class="doc doc-class-bases">
13378
- Bases: <code><autoref identifier="django.forms.SlugField" optional hover>SlugField</autoref></code></p>
13747
+ Bases: <code><span title="django.forms.SlugField">SlugField</span></code></p>
13748
+
13749
+
13750
+ <p>Extend the built-in SlugField to automatically populate from a field called <code>name</code> unless otherwise specified.</p>
13751
+
13752
+
13753
+
13379
13754
 
13380
13755
 
13381
- <p>Extend the built-in SlugField to automatically populate from a field called <code>name</code> unless otherwise specified.</p>
13382
13756
 
13383
13757
 
13384
13758
 
@@ -13404,7 +13778,7 @@ Then verify that any requested RelationshipAssociations do not violate relations
13404
13778
 
13405
13779
  <div class="doc doc-contents ">
13406
13780
 
13407
- <p>Instantiate a SlugField.</p>
13781
+ <p>Instantiate a SlugField.</p>
13408
13782
 
13409
13783
 
13410
13784
  <p><span class="doc-section-title">Parameters:</span></p>
@@ -13419,9 +13793,11 @@ Then verify that any requested RelationshipAssociations do not violate relations
13419
13793
  </thead>
13420
13794
  <tbody>
13421
13795
  <tr class="doc-section-item">
13422
- <td><code>slug_source</code></td>
13423
13796
  <td>
13424
- <code>(<autoref identifier="str" optional>str</autoref>, <autoref identifier="tuple" optional>tuple</autoref>)</code>
13797
+ <code>slug_source</code>
13798
+ </td>
13799
+ <td>
13800
+ <code>(str, tuple)</code>
13425
13801
  </td>
13426
13802
  <td>
13427
13803
  <div class="doc-md-description">
@@ -13460,10 +13836,15 @@ Then verify that any requested RelationshipAssociations do not violate relations
13460
13836
 
13461
13837
  <div class="doc doc-contents ">
13462
13838
  <p class="doc doc-class-bases">
13463
- Bases: <code><autoref identifier="django.forms.TextInput" optional hover>TextInput</autoref></code></p>
13839
+ Bases: <code><span title="django.forms.TextInput">TextInput</span></code></p>
13840
+
13841
+
13842
+ <p>Subclass TextInput and add a slug regeneration button next to the form field.</p>
13843
+
13844
+
13845
+
13464
13846
 
13465
13847
 
13466
- <p>Subclass TextInput and add a slug regeneration button next to the form field.</p>
13467
13848
 
13468
13849
 
13469
13850
 
@@ -13499,10 +13880,15 @@ Then verify that any requested RelationshipAssociations do not violate relations
13499
13880
 
13500
13881
  <div class="doc doc-contents ">
13501
13882
  <p class="doc doc-class-bases">
13502
- Bases: <code><autoref identifier="django.forms.Textarea" optional hover>Textarea</autoref></code></p>
13883
+ Bases: <code><span title="django.forms.Textarea">Textarea</span></code></p>
13884
+
13885
+
13886
+ <p>Subclass used for rendering a smaller textarea element.</p>
13887
+
13888
+
13889
+
13503
13890
 
13504
13891
 
13505
- <p>Subclass used for rendering a smaller textarea element.</p>
13506
13892
 
13507
13893
 
13508
13894
  </div>
@@ -13522,10 +13908,15 @@ Then verify that any requested RelationshipAssociations do not violate relations
13522
13908
 
13523
13909
  <div class="doc doc-contents ">
13524
13910
  <p class="doc doc-class-bases">
13525
- Bases: <code><autoref identifier="nautobot.core.forms.widgets.SelectWithDisabled" optional hover>SelectWithDisabled</autoref></code></p>
13911
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.forms.widgets.SelectWithDisabled" href="#nautobot.apps.forms.SelectWithDisabled">SelectWithDisabled</a></code></p>
13912
+
13913
+
13914
+ <p>A static <select> form widget using the Select2 library.</p>
13915
+
13916
+
13917
+
13526
13918
 
13527
13919
 
13528
- <p>A static <select> form widget using the Select2 library.</p>
13529
13920
 
13530
13921
 
13531
13922
 
@@ -13561,10 +13952,15 @@ Then verify that any requested RelationshipAssociations do not violate relations
13561
13952
 
13562
13953
  <div class="doc doc-contents ">
13563
13954
  <p class="doc doc-class-bases">
13564
- Bases: <code><autoref identifier="django.forms.Form" optional hover>Form</autoref></code></p>
13955
+ Bases: <code><span title="django.forms.Form">Form</span></code></p>
13956
+
13957
+
13958
+ <p>Mixin to add non-required <code>status</code> choice field to forms.</p>
13959
+
13960
+
13961
+
13565
13962
 
13566
13963
 
13567
- <p>Mixin to add non-required <code>status</code> choice field to forms.</p>
13568
13964
 
13569
13965
 
13570
13966
 
@@ -13600,10 +13996,15 @@ Then verify that any requested RelationshipAssociations do not violate relations
13600
13996
 
13601
13997
  <div class="doc doc-contents ">
13602
13998
  <p class="doc doc-class-bases">
13603
- Bases: <code><autoref identifier="django.forms.Form" optional hover>Form</autoref></code></p>
13999
+ Bases: <code><span title="django.forms.Form">Form</span></code></p>
14000
+
14001
+
14002
+ <p>Mixin to add non-required <code>status</code> multiple-choice field to filter forms.</p>
14003
+
14004
+
14005
+
13604
14006
 
13605
14007
 
13606
- <p>Mixin to add non-required <code>status</code> multiple-choice field to filter forms.</p>
13607
14008
 
13608
14009
 
13609
14010
 
@@ -13639,10 +14040,15 @@ Then verify that any requested RelationshipAssociations do not violate relations
13639
14040
 
13640
14041
  <div class="doc doc-contents ">
13641
14042
  <p class="doc doc-class-bases">
13642
- Bases: <code><autoref identifier="nautobot.core.forms.forms.BootstrapMixin" optional hover>BootstrapMixin</autoref></code>, <code><autoref identifier="django.forms.Form" optional hover>Form</autoref></code></p>
14043
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.forms.forms.BootstrapMixin" href="#nautobot.apps.forms.BootstrapMixin">BootstrapMixin</a></code>, <code><span title="django.forms.Form">Form</span></code></p>
14044
+
14045
+
14046
+ <p>Form for configuring user's table preferences.</p>
14047
+
14048
+
14049
+
13643
14050
 
13644
14051
 
13645
- <p>Form for configuring user's table preferences.</p>
13646
14052
 
13647
14053
 
13648
14054
 
@@ -13678,15 +14084,20 @@ Then verify that any requested RelationshipAssociations do not violate relations
13678
14084
 
13679
14085
  <div class="doc doc-contents ">
13680
14086
  <p class="doc doc-class-bases">
13681
- Bases: <code><autoref identifier="nautobot.core.forms.fields.DynamicModelMultipleChoiceField" optional hover>DynamicModelMultipleChoiceField</autoref></code></p>
14087
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.forms.fields.DynamicModelMultipleChoiceField" href="#nautobot.apps.forms.DynamicModelMultipleChoiceField">DynamicModelMultipleChoiceField</a></code></p>
13682
14088
 
13683
14089
 
13684
- <p>A filter field for the tags of a model. Only the tags used by a model are displayed.</p>
14090
+ <p>A filter field for the tags of a model. Only the tags used by a model are displayed.</p>
13685
14091
  <p>:param model: The model of the filter</p>
13686
14092
 
13687
14093
 
13688
14094
 
13689
14095
 
14096
+
14097
+
14098
+
14099
+
14100
+
13690
14101
  <div class="doc doc-children">
13691
14102
 
13692
14103
 
@@ -13718,10 +14129,15 @@ Then verify that any requested RelationshipAssociations do not violate relations
13718
14129
 
13719
14130
  <div class="doc doc-contents ">
13720
14131
  <p class="doc doc-class-bases">
13721
- Bases: <code><autoref identifier="django.forms.TextInput" optional hover>TextInput</autoref></code></p>
14132
+ Bases: <code><span title="django.forms.TextInput">TextInput</span></code></p>
14133
+
14134
+
14135
+ <p>Time picker using Flatpickr.</p>
14136
+
14137
+
14138
+
13722
14139
 
13723
14140
 
13724
- <p>Time picker using Flatpickr.</p>
13725
14141
 
13726
14142
 
13727
14143
 
@@ -13756,7 +14172,7 @@ Then verify that any requested RelationshipAssociations do not violate relations
13756
14172
 
13757
14173
  <div class="doc doc-contents ">
13758
14174
 
13759
- <p>Add a blank choice to the beginning of a choices list.</p>
14175
+ <p>Add a blank choice to the beginning of a choices list.</p>
13760
14176
 
13761
14177
  </div>
13762
14178
 
@@ -13773,7 +14189,7 @@ Then verify that any requested RelationshipAssociations do not violate relations
13773
14189
 
13774
14190
  <div class="doc doc-contents ">
13775
14191
 
13776
- <p>Attach a field to an existing filter form class.</p>
14192
+ <p>Attach a field to an existing filter form class.</p>
13777
14193
 
13778
14194
  </div>
13779
14195
 
@@ -13790,7 +14206,7 @@ Then verify that any requested RelationshipAssociations do not violate relations
13790
14206
 
13791
14207
  <div class="doc doc-contents ">
13792
14208
 
13793
- <p>Expand an alphabetic pattern into a list of strings.</p>
14209
+ <p>Expand an alphabetic pattern into a list of strings.</p>
13794
14210
 
13795
14211
  </div>
13796
14212
 
@@ -13807,7 +14223,7 @@ Then verify that any requested RelationshipAssociations do not violate relations
13807
14223
 
13808
14224
  <div class="doc doc-contents ">
13809
14225
 
13810
- <p>Expand an IP address pattern into a list of strings. Examples:
14226
+ <p>Expand an IP address pattern into a list of strings. Examples:
13811
14227
  '192.0.2.[1,2,100-250]/24' =&gt; ['192.0.2.1/24', '192.0.2.2/24', '192.0.2.100/24' ... '192.0.2.250/24']
13812
14228
  '2001:db8:0:[0,fd-ff]::/64' =&gt; ['2001:db8:0:0::/64', '2001:db8:0:fd::/64', ... '2001:db8:0:ff::/64']</p>
13813
14229
 
@@ -13826,7 +14242,7 @@ Then verify that any requested RelationshipAssociations do not violate relations
13826
14242
 
13827
14243
  <div class="doc doc-contents ">
13828
14244
 
13829
- <p>Return a Form class with the specified fields derived from a model. This is useful when we need a form to be used
14245
+ <p>Return a Form class with the specified fields derived from a model. This is useful when we need a form to be used
13830
14246
  for creating objects, but want to avoid the model's validation (e.g. for bulk create/edit functions). All fields
13831
14247
  are marked as not required.</p>
13832
14248
 
@@ -13845,7 +14261,7 @@ are marked as not required.</p>
13845
14261
 
13846
14262
  <div class="doc doc-contents ">
13847
14263
 
13848
- <p>Expand an alphanumeric range (continuous or not) into a list.
14264
+ <p>Expand an alphanumeric range (continuous or not) into a list.
13849
14265
  'a-d,f' =&gt; [a, b, c, d, f]
13850
14266
  '0-3,a-d' =&gt; [0, 1, 2, 3, a, b, c, d]</p>
13851
14267
 
@@ -13864,7 +14280,7 @@ are marked as not required.</p>
13864
14280
 
13865
14281
  <div class="doc doc-contents ">
13866
14282
 
13867
- <p>Expand a numeric range (continuous or not) into a sorted decimal or
14283
+ <p>Expand a numeric range (continuous or not) into a sorted decimal or
13868
14284
  hexadecimal list, as specified by the base parameter
13869
14285
  '0-3,5' =&gt; [0, 1, 2, 3, 5]
13870
14286
  '2,8-b,d,f' =&gt; [2, 8, 9, a, b, d, f]</p>
@@ -13884,7 +14300,7 @@ hexadecimal list, as specified by the base parameter
13884
14300
 
13885
14301
  <div class="doc doc-contents ">
13886
14302
 
13887
- <p>Restrict all form fields which reference a RestrictedQuerySet. This ensures that users see only permitted objects
14303
+ <p>Restrict all form fields which reference a RestrictedQuerySet. This ensures that users see only permitted objects
13888
14304
  as available choices.</p>
13889
14305
 
13890
14306
  </div>
@@ -14044,7 +14460,7 @@ as available choices.</p>
14044
14460
  <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>
14045
14461
 
14046
14462
 
14047
- <script src="../../../assets/javascripts/bundle.83f73b43.min.js"></script>
14463
+ <script src="../../../assets/javascripts/bundle.88dd0f4e.min.js"></script>
14048
14464
 
14049
14465
  <script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
14050
14466