nautobot 2.2.9__py3-none-any.whl → 2.3.0b1__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 (697) hide show
  1. nautobot/apps/forms.py +4 -0
  2. nautobot/apps/models.py +10 -1
  3. nautobot/circuits/__init__.py +0 -1
  4. nautobot/circuits/apps.py +1 -0
  5. nautobot/circuits/factory.py +15 -3
  6. nautobot/circuits/filters.py +13 -0
  7. nautobot/circuits/forms.py +13 -0
  8. nautobot/circuits/migrations/0021_alter_circuit_status_alter_circuittermination__path.py +32 -0
  9. nautobot/circuits/migrations/0022_circuittermination_cloud_network.py +25 -0
  10. nautobot/circuits/models.py +16 -3
  11. nautobot/circuits/tables.py +16 -2
  12. nautobot/circuits/templates/circuits/circuittermination_create.html +10 -2
  13. nautobot/circuits/templates/circuits/circuittermination_retrieve.html +6 -0
  14. nautobot/circuits/templates/circuits/inc/circuit_termination.html +6 -1
  15. nautobot/circuits/tests/test_api.py +7 -5
  16. nautobot/circuits/tests/test_filters.py +12 -5
  17. nautobot/circuits/tests/test_models.py +33 -2
  18. nautobot/circuits/views.py +2 -3
  19. nautobot/cloud/__init__.py +0 -0
  20. nautobot/cloud/api/__init__.py +0 -0
  21. nautobot/cloud/api/serializers.py +54 -0
  22. nautobot/cloud/api/urls.py +16 -0
  23. nautobot/cloud/api/views.py +48 -0
  24. nautobot/cloud/apps.py +13 -0
  25. nautobot/cloud/factory.py +111 -0
  26. nautobot/cloud/filters.py +184 -0
  27. nautobot/cloud/forms.py +333 -0
  28. nautobot/cloud/homepage.py +43 -0
  29. nautobot/cloud/migrations/0001_initial.py +304 -0
  30. nautobot/cloud/migrations/__init__.py +0 -0
  31. nautobot/cloud/models.py +247 -0
  32. nautobot/cloud/navigation.py +85 -0
  33. nautobot/cloud/tables.py +173 -0
  34. nautobot/cloud/templates/cloud/cloudaccount_retrieve.html +43 -0
  35. nautobot/cloud/templates/cloud/cloudnetwork_retrieve.html +128 -0
  36. nautobot/cloud/templates/cloud/cloudnetwork_update.html +33 -0
  37. nautobot/cloud/templates/cloud/cloudresourcetype_retrieve.html +100 -0
  38. nautobot/cloud/templates/cloud/cloudservice_retrieve.html +65 -0
  39. nautobot/cloud/templates/cloud/cloudservice_update.html +25 -0
  40. nautobot/cloud/tests/__init__.py +0 -0
  41. nautobot/cloud/tests/test_api.py +248 -0
  42. nautobot/cloud/tests/test_filters.py +113 -0
  43. nautobot/cloud/tests/test_models.py +43 -0
  44. nautobot/cloud/tests/test_views.py +153 -0
  45. nautobot/cloud/urls.py +14 -0
  46. nautobot/cloud/views.py +181 -0
  47. nautobot/core/__init__.py +0 -3
  48. nautobot/core/api/metadata.py +1 -0
  49. nautobot/core/api/parsers.py +7 -1
  50. nautobot/core/api/urls.py +1 -0
  51. nautobot/core/api/utils.py +1 -0
  52. nautobot/core/api/views.py +4 -0
  53. nautobot/core/apps/__init__.py +6 -3
  54. nautobot/core/constants.py +8 -0
  55. nautobot/core/factory.py +32 -1
  56. nautobot/core/filters.py +96 -28
  57. nautobot/core/forms/fields.py +10 -4
  58. nautobot/core/forms/forms.py +1 -1
  59. nautobot/core/forms/widgets.py +18 -1
  60. nautobot/core/graphql/generators.py +2 -2
  61. nautobot/core/graphql/schema.py +34 -4
  62. nautobot/core/jobs/__init__.py +17 -6
  63. nautobot/core/jobs/cleanup.py +100 -0
  64. nautobot/core/jobs/groups.py +38 -0
  65. nautobot/core/management/commands/generate_test_data.py +116 -3
  66. nautobot/core/models/__init__.py +34 -9
  67. nautobot/core/models/generics.py +19 -3
  68. nautobot/core/models/name_color_content_types.py +7 -28
  69. nautobot/core/models/querysets.py +4 -3
  70. nautobot/core/models/tree_queries.py +1 -1
  71. nautobot/core/models/utils.py +21 -5
  72. nautobot/core/settings.py +4 -30
  73. nautobot/core/settings.yaml +34 -27
  74. nautobot/core/settings_funcs.py +103 -0
  75. nautobot/core/tables.py +127 -56
  76. nautobot/core/templates/admin/search_form.html +1 -1
  77. nautobot/core/templates/buttons/add.html +11 -3
  78. nautobot/core/templates/buttons/consolidated_bulk_action_buttons.html +13 -0
  79. nautobot/core/templates/buttons/consolidated_detail_view_action_buttons.html +13 -0
  80. nautobot/core/templates/buttons/export.html +101 -53
  81. nautobot/core/templates/buttons/job_import.html +11 -3
  82. nautobot/core/templates/generic/object_bulk_destroy.html +3 -1
  83. nautobot/core/templates/generic/object_bulk_update.html +3 -1
  84. nautobot/core/templates/generic/object_changelog.html +0 -9
  85. nautobot/core/templates/generic/object_list.html +156 -17
  86. nautobot/core/templates/generic/object_retrieve.html +80 -16
  87. nautobot/core/templates/inc/extras_features_edit_form_fields.html +8 -0
  88. nautobot/core/templates/inc/javascript.html +2 -0
  89. nautobot/core/templates/inc/media.html +2 -2
  90. nautobot/core/templates/inc/nav_menu.html +1 -0
  91. nautobot/core/templates/inc/paginator.html +7 -7
  92. nautobot/core/templates/inc/search_panel.html +2 -2
  93. nautobot/core/templates/inc/table.html +2 -2
  94. nautobot/core/templates/nautobot_config.py.j2 +13 -23
  95. nautobot/core/templates/utilities/templatetags/dynamic_group_assignment_modal.html +37 -0
  96. nautobot/core/templates/utilities/templatetags/filter_form_modal.html +2 -2
  97. nautobot/core/templates/utilities/templatetags/saved_view_modal.html +38 -0
  98. nautobot/core/templates/utilities/theme_preview.html +25 -8
  99. nautobot/core/templates/utilities/worker_status.html +152 -0
  100. nautobot/core/templatetags/buttons.py +335 -38
  101. nautobot/core/templatetags/form_helpers.py +1 -1
  102. nautobot/core/templatetags/helpers.py +181 -11
  103. nautobot/core/testing/api.py +5 -4
  104. nautobot/core/testing/filters.py +51 -13
  105. nautobot/core/testing/mixins.py +46 -0
  106. nautobot/core/testing/models.py +22 -0
  107. nautobot/core/testing/schema.py +4 -8
  108. nautobot/core/testing/views.py +31 -14
  109. nautobot/core/tests/integration/test_general_functionality.py +1 -1
  110. nautobot/core/tests/integration/test_import_objects_ui.py +1 -0
  111. nautobot/core/tests/integration/test_swagger.py +1 -1
  112. nautobot/core/tests/nautobot_config.py +0 -1
  113. nautobot/core/tests/runner.py +2 -2
  114. nautobot/core/tests/test_api.py +1 -0
  115. nautobot/core/tests/test_authentication.py +7 -2
  116. nautobot/core/tests/test_filters.py +11 -9
  117. nautobot/core/tests/test_forms.py +9 -0
  118. nautobot/core/tests/test_graphql.py +27 -16
  119. nautobot/core/tests/test_jobs.py +123 -74
  120. nautobot/core/tests/test_tables.py +3 -1
  121. nautobot/core/tests/test_templatetags_helpers.py +12 -5
  122. nautobot/core/tests/test_utils.py +31 -20
  123. nautobot/core/tests/test_views.py +6 -6
  124. nautobot/core/urls.py +8 -3
  125. nautobot/core/utils/deprecation.py +29 -0
  126. nautobot/core/utils/filtering.py +12 -9
  127. nautobot/core/utils/lookup.py +37 -2
  128. nautobot/core/utils/requests.py +4 -1
  129. nautobot/core/views/__init__.py +137 -24
  130. nautobot/core/views/generic.py +118 -66
  131. nautobot/core/views/mixins.py +104 -35
  132. nautobot/core/views/paginator.py +9 -3
  133. nautobot/core/views/renderers.py +121 -56
  134. nautobot/core/views/utils.py +79 -1
  135. nautobot/dcim/__init__.py +0 -1
  136. nautobot/dcim/api/serializers.py +180 -44
  137. nautobot/dcim/api/urls.py +7 -3
  138. nautobot/dcim/api/views.py +53 -7
  139. nautobot/dcim/apps.py +3 -0
  140. nautobot/dcim/choices.py +25 -0
  141. nautobot/dcim/constants.py +7 -0
  142. nautobot/dcim/factory.py +249 -18
  143. nautobot/dcim/filters/__init__.py +369 -193
  144. nautobot/dcim/filters/mixins.py +274 -1
  145. nautobot/dcim/forms.py +817 -109
  146. nautobot/dcim/graphql/types.py +2 -2
  147. nautobot/dcim/homepage.py +1 -1
  148. nautobot/dcim/migrations/0059_add_role_field_to_interface_models.py +27 -0
  149. nautobot/dcim/migrations/0060_alter_cable_status_alter_consoleport__path_and_more.py +303 -0
  150. nautobot/dcim/migrations/0061_module_models.py +861 -0
  151. nautobot/dcim/migrations/0062_module_data_migration.py +25 -0
  152. nautobot/dcim/models/__init__.py +8 -0
  153. nautobot/dcim/models/cables.py +15 -0
  154. nautobot/dcim/models/device_component_templates.py +207 -53
  155. nautobot/dcim/models/device_components.py +275 -106
  156. nautobot/dcim/models/devices.py +466 -13
  157. nautobot/dcim/navigation.py +47 -0
  158. nautobot/dcim/signals.py +3 -3
  159. nautobot/dcim/tables/__init__.py +35 -23
  160. nautobot/dcim/tables/devices.py +231 -59
  161. nautobot/dcim/tables/devicetypes.py +65 -9
  162. nautobot/dcim/tables/racks.py +5 -1
  163. nautobot/dcim/tables/template_code.py +46 -26
  164. nautobot/dcim/templates/dcim/cable_connect.html +76 -3
  165. nautobot/dcim/templates/dcim/console_port_connection_list.html +7 -5
  166. nautobot/dcim/templates/dcim/device/base.html +15 -7
  167. nautobot/dcim/templates/dcim/device/consoleports.html +2 -3
  168. nautobot/dcim/templates/dcim/device/consoleserverports.html +2 -3
  169. nautobot/dcim/templates/dcim/device/devicebays.html +6 -7
  170. nautobot/dcim/templates/dcim/device/frontports.html +2 -3
  171. nautobot/dcim/templates/dcim/device/interfaces.html +2 -3
  172. nautobot/dcim/templates/dcim/device/inventory.html +2 -3
  173. nautobot/dcim/templates/dcim/device/modulebays.html +49 -0
  174. nautobot/dcim/templates/dcim/device/poweroutlets.html +2 -3
  175. nautobot/dcim/templates/dcim/device/powerports.html +2 -3
  176. nautobot/dcim/templates/dcim/device/rearports.html +2 -3
  177. nautobot/dcim/templates/dcim/device.html +45 -1
  178. nautobot/dcim/templates/dcim/device_component.html +13 -5
  179. nautobot/dcim/templates/dcim/device_list.html +2 -1
  180. nautobot/dcim/templates/dcim/deviceredundancygroup_retrieve.html +0 -6
  181. nautobot/dcim/templates/dcim/devicetype.html +99 -98
  182. nautobot/dcim/templates/dcim/devicetype_list.html +8 -16
  183. nautobot/dcim/templates/dcim/inc/devicetype_component_table.html +1 -1
  184. nautobot/dcim/templates/dcim/inc/moduletype_component_table.html +39 -0
  185. nautobot/dcim/templates/dcim/interface.html +17 -2
  186. nautobot/dcim/templates/dcim/interface_connection_list.html +7 -5
  187. nautobot/dcim/templates/dcim/interface_edit.html +1 -0
  188. nautobot/dcim/templates/dcim/manufacturer.html +24 -0
  189. nautobot/dcim/templates/dcim/module/base.html +97 -0
  190. nautobot/dcim/templates/dcim/module_bulk_destroy.html +5 -0
  191. nautobot/dcim/templates/dcim/module_consoleports.html +53 -0
  192. nautobot/dcim/templates/dcim/module_consoleserverports.html +53 -0
  193. nautobot/dcim/templates/dcim/module_destroy.html +5 -0
  194. nautobot/dcim/templates/dcim/module_frontports.html +53 -0
  195. nautobot/dcim/templates/dcim/module_interfaces.html +57 -0
  196. nautobot/dcim/templates/dcim/module_list.html +20 -0
  197. nautobot/dcim/templates/dcim/module_modulebays.html +49 -0
  198. nautobot/dcim/templates/dcim/module_poweroutlets.html +53 -0
  199. nautobot/dcim/templates/dcim/module_powerports.html +53 -0
  200. nautobot/dcim/templates/dcim/module_rearports.html +53 -0
  201. nautobot/dcim/templates/dcim/module_retrieve.html +63 -0
  202. nautobot/dcim/templates/dcim/module_update.html +71 -0
  203. nautobot/dcim/templates/dcim/modulebay_bulk_destroy.html +5 -0
  204. nautobot/dcim/templates/dcim/modulebay_destroy.html +8 -0
  205. nautobot/dcim/templates/dcim/modulebay_retrieve.html +101 -0
  206. nautobot/dcim/templates/dcim/moduletype_list.html +11 -0
  207. nautobot/dcim/templates/dcim/moduletype_retrieve.html +142 -0
  208. nautobot/dcim/templates/dcim/power_port_connection_list.html +7 -5
  209. nautobot/dcim/templates/dcim/softwareimagefile_retrieve.html +65 -19
  210. nautobot/dcim/tests/integration/test_cable_connect_form.py +4 -4
  211. nautobot/dcim/tests/test_api.py +691 -208
  212. nautobot/dcim/tests/test_filters.py +836 -217
  213. nautobot/dcim/tests/test_models.py +1072 -39
  214. nautobot/dcim/tests/test_views.py +1488 -358
  215. nautobot/dcim/urls.py +17 -2
  216. nautobot/dcim/utils.py +2 -3
  217. nautobot/dcim/views.py +1107 -120
  218. nautobot/extras/__init__.py +0 -1
  219. nautobot/extras/api/serializers.py +115 -3
  220. nautobot/extras/api/urls.py +12 -0
  221. nautobot/extras/api/views.py +125 -7
  222. nautobot/extras/apps.py +2 -2
  223. nautobot/extras/choices.py +43 -0
  224. nautobot/extras/context_managers.py +13 -8
  225. nautobot/extras/datasources/git.py +2 -0
  226. nautobot/extras/factory.py +422 -9
  227. nautobot/extras/filters/__init__.py +174 -3
  228. nautobot/extras/filters/mixins.py +46 -43
  229. nautobot/extras/forms/base.py +17 -4
  230. nautobot/extras/forms/forms.py +227 -8
  231. nautobot/extras/forms/mixins.py +93 -0
  232. nautobot/extras/graphql/types.py +23 -10
  233. nautobot/extras/homepage.py +16 -13
  234. nautobot/extras/jobs.py +2 -2
  235. nautobot/extras/management/__init__.py +1 -0
  236. nautobot/extras/management/commands/refresh_dynamic_group_member_caches.py +1 -16
  237. nautobot/extras/migrations/0021_customfield_changelog_data.py +1 -0
  238. nautobot/extras/migrations/0109_dynamicgroup_group_type_dynamicgroup_tags_and_more.py +108 -0
  239. nautobot/extras/migrations/0110_alter_configcontext_cluster_groups_and_more.py +111 -0
  240. nautobot/extras/migrations/0111_metadata.py +162 -0
  241. nautobot/extras/migrations/0112_dynamic_group_group_type_data_migration.py +28 -0
  242. nautobot/extras/migrations/0113_saved_views.py +77 -0
  243. nautobot/extras/models/__init__.py +15 -1
  244. nautobot/extras/models/change_logging.py +3 -3
  245. nautobot/extras/models/contacts.py +4 -0
  246. nautobot/extras/models/customfields.py +18 -3
  247. nautobot/extras/models/groups.py +389 -225
  248. nautobot/extras/models/jobs.py +4 -84
  249. nautobot/extras/models/metadata.py +441 -0
  250. nautobot/extras/models/mixins.py +72 -62
  251. nautobot/extras/models/models.py +116 -9
  252. nautobot/extras/models/relationships.py +9 -2
  253. nautobot/extras/models/tags.py +13 -2
  254. nautobot/extras/navigation.py +57 -0
  255. nautobot/extras/plugins/__init__.py +3 -1
  256. nautobot/extras/querysets.py +30 -66
  257. nautobot/extras/signals.py +96 -114
  258. nautobot/extras/tables.py +171 -47
  259. nautobot/extras/templates/extras/dynamicgroup.html +44 -15
  260. nautobot/extras/templates/extras/dynamicgroup_edit.html +2 -0
  261. nautobot/extras/templates/extras/job.html +1 -1
  262. nautobot/extras/templates/extras/job_detail.html +0 -11
  263. nautobot/extras/templates/extras/jobresult.html +61 -74
  264. nautobot/extras/templates/extras/metadatatype_create.html +89 -0
  265. nautobot/extras/templates/extras/metadatatype_retrieve.html +67 -0
  266. nautobot/extras/templates/extras/object_dynamicgroups.html +7 -0
  267. nautobot/extras/templates/extras/objectchange_list.html +0 -12
  268. nautobot/extras/templates/extras/plugins_list.html +1 -3
  269. nautobot/extras/templates/extras/role_retrieve.html +48 -0
  270. nautobot/extras/templates/extras/staticgroupassociation_retrieve.html +20 -0
  271. nautobot/extras/tests/integration/test_customfields.py +1 -0
  272. nautobot/extras/tests/test_api.py +501 -22
  273. nautobot/extras/tests/test_changelog.py +20 -9
  274. nautobot/extras/tests/test_context_managers.py +22 -15
  275. nautobot/extras/tests/test_datasources.py +13 -1
  276. nautobot/extras/tests/test_dynamicgroups.py +201 -171
  277. nautobot/extras/tests/test_filters.py +211 -12
  278. nautobot/extras/tests/test_jobs.py +4 -4
  279. nautobot/extras/tests/test_models.py +499 -4
  280. nautobot/extras/tests/test_relationships.py +1 -0
  281. nautobot/extras/tests/test_views.py +565 -28
  282. nautobot/extras/tests/test_webhooks.py +1 -1
  283. nautobot/extras/urls.py +5 -0
  284. nautobot/extras/utils.py +56 -45
  285. nautobot/extras/views.py +585 -96
  286. nautobot/ipam/__init__.py +0 -1
  287. nautobot/ipam/apps.py +1 -0
  288. nautobot/ipam/factory.py +17 -19
  289. nautobot/ipam/filters.py +14 -1
  290. nautobot/ipam/forms.py +9 -5
  291. nautobot/ipam/graphql/types.py +2 -2
  292. nautobot/ipam/migrations/0047_alter_ipaddress_role_alter_ipaddress_status_and_more.py +59 -0
  293. nautobot/ipam/models.py +23 -9
  294. nautobot/ipam/querysets.py +1 -1
  295. nautobot/ipam/signals.py +4 -2
  296. nautobot/ipam/tables.py +1 -0
  297. nautobot/ipam/templates/ipam/ipaddress_interfaces.html +1 -1
  298. nautobot/ipam/templates/ipam/ipaddress_vm_interfaces.html +1 -1
  299. nautobot/ipam/templates/ipam/prefix.html +1 -0
  300. nautobot/ipam/tests/test_api.py +37 -18
  301. nautobot/ipam/tests/test_filters.py +26 -2
  302. nautobot/ipam/tests/test_models.py +8 -3
  303. nautobot/ipam/tests/test_querysets.py +1 -1
  304. nautobot/ipam/tests/test_views.py +3 -2
  305. nautobot/ipam/urls.py +2 -2
  306. nautobot/ipam/views.py +25 -28
  307. nautobot/project-static/css/base.css +20 -1
  308. nautobot/project-static/css/dark.css +11 -0
  309. nautobot/project-static/docs/404.html +884 -80
  310. nautobot/project-static/docs/apps/index.html +884 -80
  311. nautobot/project-static/docs/apps/nautobot-apps.html +884 -80
  312. nautobot/project-static/docs/assets/_mkdocstrings.css +5 -0
  313. nautobot/project-static/docs/code-reference/nautobot/apps/__init__.html +911 -112
  314. nautobot/project-static/docs/code-reference/nautobot/apps/admin.html +896 -93
  315. nautobot/project-static/docs/code-reference/nautobot/apps/api.html +1457 -790
  316. nautobot/project-static/docs/code-reference/nautobot/apps/change_logging.html +927 -136
  317. nautobot/project-static/docs/code-reference/nautobot/apps/choices.html +969 -180
  318. nautobot/project-static/docs/code-reference/nautobot/apps/config.html +893 -91
  319. nautobot/project-static/docs/code-reference/nautobot/apps/constants.html +889 -85
  320. nautobot/project-static/docs/code-reference/nautobot/apps/datasources.html +983 -185
  321. nautobot/project-static/docs/code-reference/nautobot/apps/exceptions.html +938 -143
  322. nautobot/project-static/docs/code-reference/nautobot/apps/factory.html +1064 -274
  323. nautobot/project-static/docs/code-reference/nautobot/apps/filters.html +1190 -346
  324. nautobot/project-static/docs/code-reference/nautobot/apps/forms.html +1663 -865
  325. nautobot/project-static/docs/code-reference/nautobot/apps/graphql.html +1156 -373
  326. nautobot/project-static/docs/code-reference/nautobot/apps/jobs.html +2200 -1502
  327. nautobot/project-static/docs/code-reference/nautobot/apps/models.html +2229 -1421
  328. nautobot/project-static/docs/code-reference/nautobot/apps/querysets.html +904 -103
  329. nautobot/project-static/docs/code-reference/nautobot/apps/secrets.html +955 -155
  330. nautobot/project-static/docs/code-reference/nautobot/apps/tables.html +1002 -215
  331. nautobot/project-static/docs/code-reference/nautobot/apps/testing.html +1911 -1275
  332. nautobot/project-static/docs/code-reference/nautobot/apps/ui.html +1835 -1091
  333. nautobot/project-static/docs/code-reference/nautobot/apps/urls.html +896 -93
  334. nautobot/project-static/docs/code-reference/nautobot/apps/utils.html +2323 -1693
  335. nautobot/project-static/docs/code-reference/nautobot/apps/views.html +1785 -1023
  336. nautobot/project-static/docs/development/apps/api/configuration-view.html +884 -80
  337. nautobot/project-static/docs/development/apps/api/database-backend-config.html +884 -80
  338. nautobot/project-static/docs/development/apps/api/models/django-admin.html +884 -80
  339. nautobot/project-static/docs/development/apps/api/models/global-search.html +884 -80
  340. nautobot/project-static/docs/development/apps/api/models/graphql.html +884 -80
  341. nautobot/project-static/docs/development/apps/api/models/index.html +922 -81
  342. nautobot/project-static/docs/development/apps/api/nautobot-app-config.html +884 -80
  343. nautobot/project-static/docs/development/apps/api/platform-features/custom-validators.html +884 -80
  344. nautobot/project-static/docs/development/apps/api/platform-features/filter-extensions.html +884 -80
  345. nautobot/project-static/docs/development/apps/api/platform-features/git-repository-content.html +884 -80
  346. nautobot/project-static/docs/development/apps/api/platform-features/index.html +884 -80
  347. nautobot/project-static/docs/development/apps/api/platform-features/jinja2-filters.html +884 -80
  348. nautobot/project-static/docs/development/apps/api/platform-features/jobs.html +884 -80
  349. nautobot/project-static/docs/development/apps/api/platform-features/populating-extensibility-features.html +884 -80
  350. nautobot/project-static/docs/development/apps/api/platform-features/secrets-providers.html +884 -80
  351. nautobot/project-static/docs/development/apps/api/platform-features/uniquely-identify-objects.html +884 -80
  352. nautobot/project-static/docs/development/apps/api/prometheus.html +884 -80
  353. nautobot/project-static/docs/development/apps/api/setup.html +884 -80
  354. nautobot/project-static/docs/development/apps/api/testing.html +884 -80
  355. nautobot/project-static/docs/development/apps/api/ui-extensions/banners.html +884 -80
  356. nautobot/project-static/docs/development/apps/api/ui-extensions/home-page.html +884 -80
  357. nautobot/project-static/docs/development/apps/api/ui-extensions/index.html +884 -80
  358. nautobot/project-static/docs/development/apps/api/ui-extensions/navigation.html +884 -80
  359. nautobot/project-static/docs/development/apps/api/ui-extensions/object-views.html +884 -80
  360. nautobot/project-static/docs/development/apps/api/views/base-template.html +884 -80
  361. nautobot/project-static/docs/development/apps/api/views/core-view-overrides.html +884 -80
  362. nautobot/project-static/docs/development/apps/api/views/django-generic-views.html +884 -80
  363. nautobot/project-static/docs/development/apps/api/views/help-documentation.html +884 -80
  364. nautobot/project-static/docs/development/apps/api/views/index.html +884 -80
  365. nautobot/project-static/docs/development/apps/api/views/nautobot-generic-views.html +884 -80
  366. nautobot/project-static/docs/development/apps/api/views/nautobotuiviewset.html +884 -80
  367. nautobot/project-static/docs/development/apps/api/views/nautobotuiviewsetrouter.html +884 -80
  368. nautobot/project-static/docs/development/apps/api/views/notes.html +884 -80
  369. nautobot/project-static/docs/development/apps/api/views/rest-api.html +884 -80
  370. nautobot/project-static/docs/development/apps/api/views/urls.html +884 -80
  371. nautobot/project-static/docs/development/apps/index.html +884 -80
  372. nautobot/project-static/docs/development/apps/migration/code-updates.html +884 -80
  373. nautobot/project-static/docs/development/apps/migration/dependency-updates.html +884 -80
  374. nautobot/project-static/docs/development/apps/migration/from-v1.html +884 -80
  375. nautobot/project-static/docs/development/apps/migration/model-updates/dcim.html +884 -80
  376. nautobot/project-static/docs/development/apps/migration/model-updates/extras.html +884 -80
  377. nautobot/project-static/docs/development/apps/migration/model-updates/global.html +884 -80
  378. nautobot/project-static/docs/development/apps/migration/model-updates/ipam.html +884 -80
  379. nautobot/project-static/docs/development/apps/porting-from-netbox.html +884 -80
  380. nautobot/project-static/docs/development/core/application-registry.html +884 -80
  381. nautobot/project-static/docs/development/core/best-practices.html +885 -80
  382. nautobot/project-static/docs/development/core/bootstrap-ui.html +884 -80
  383. nautobot/project-static/docs/development/core/caching.html +884 -80
  384. nautobot/project-static/docs/development/core/controllers.html +884 -80
  385. nautobot/project-static/docs/development/core/docker-compose-advanced-use-cases.html +884 -80
  386. nautobot/project-static/docs/development/core/generic-views.html +884 -80
  387. nautobot/project-static/docs/development/core/getting-started.html +884 -80
  388. nautobot/project-static/docs/development/core/homepage.html +884 -80
  389. nautobot/project-static/docs/development/core/index.html +884 -91
  390. nautobot/project-static/docs/development/core/model-checklist.html +887 -81
  391. nautobot/project-static/docs/development/core/model-features.html +884 -80
  392. nautobot/project-static/docs/development/core/natural-keys.html +884 -80
  393. nautobot/project-static/docs/development/core/navigation-menu.html +884 -80
  394. nautobot/project-static/docs/development/core/release-checklist.html +887 -83
  395. nautobot/project-static/docs/development/core/role-internals.html +884 -80
  396. nautobot/project-static/docs/development/core/settings.html +884 -80
  397. nautobot/project-static/docs/development/core/style-guide.html +885 -81
  398. nautobot/project-static/docs/development/core/templates.html +896 -81
  399. nautobot/project-static/docs/development/core/testing.html +884 -80
  400. nautobot/project-static/docs/development/core/user-preferences.html +884 -80
  401. nautobot/project-static/docs/development/index.html +884 -80
  402. nautobot/project-static/docs/development/jobs/index.html +1247 -457
  403. nautobot/project-static/docs/development/jobs/migration/from-v1.html +884 -80
  404. nautobot/project-static/docs/index.html +13 -8228
  405. nautobot/project-static/docs/media/models/cloud_aws_direct_connect_dark.png +0 -0
  406. nautobot/project-static/docs/media/models/cloud_aws_direct_connect_light.png +0 -0
  407. nautobot/project-static/docs/models/cloud/cloudaccount.html +15 -0
  408. nautobot/project-static/docs/models/cloud/cloudnetwork.html +15 -0
  409. nautobot/project-static/docs/models/cloud/cloudnetworkprefixassignment.html +15 -0
  410. nautobot/project-static/docs/models/cloud/cloudresourcetype.html +15 -0
  411. nautobot/project-static/docs/models/cloud/cloudservice.html +15 -0
  412. nautobot/project-static/docs/models/cloud/cloudservicenetworkassignment.html +15 -0
  413. nautobot/project-static/docs/models/dcim/module.html +15 -0
  414. nautobot/project-static/docs/models/dcim/modulebay.html +15 -0
  415. nautobot/project-static/docs/models/dcim/modulebaytemplate.html +15 -0
  416. nautobot/project-static/docs/models/dcim/moduletype.html +15 -0
  417. nautobot/project-static/docs/models/extras/metadatachoice.html +15 -0
  418. nautobot/project-static/docs/models/extras/metadatatype.html +15 -0
  419. nautobot/project-static/docs/models/extras/objectmetadata.html +15 -0
  420. nautobot/project-static/docs/models/extras/role.html +15 -0
  421. nautobot/project-static/docs/models/extras/savedview.html +15 -0
  422. nautobot/project-static/docs/models/extras/staticgroupassociation.html +15 -0
  423. nautobot/project-static/docs/models/extras/status.html +15 -0
  424. nautobot/project-static/docs/objects.inv +0 -0
  425. nautobot/project-static/docs/overview/application_stack.html +892 -81
  426. nautobot/project-static/docs/overview/design_philosophy.html +886 -82
  427. nautobot/project-static/docs/overview/index.html +9032 -13
  428. nautobot/project-static/docs/release-notes/index.html +887 -83
  429. nautobot/project-static/docs/release-notes/version-1.0.html +884 -80
  430. nautobot/project-static/docs/release-notes/version-1.1.html +884 -80
  431. nautobot/project-static/docs/release-notes/version-1.2.html +884 -80
  432. nautobot/project-static/docs/release-notes/version-1.3.html +884 -80
  433. nautobot/project-static/docs/release-notes/version-1.4.html +884 -80
  434. nautobot/project-static/docs/release-notes/version-1.5.html +885 -81
  435. nautobot/project-static/docs/release-notes/version-1.6.html +885 -81
  436. nautobot/project-static/docs/release-notes/version-2.0.html +884 -80
  437. nautobot/project-static/docs/release-notes/version-2.1.html +884 -80
  438. nautobot/project-static/docs/release-notes/version-2.2.html +990 -323
  439. nautobot/project-static/docs/release-notes/version-2.3.html +9524 -0
  440. nautobot/project-static/docs/requirements.txt +4 -4
  441. nautobot/project-static/docs/search/search_index.json +1 -1
  442. nautobot/project-static/docs/sitemap.xml +335 -260
  443. nautobot/project-static/docs/sitemap.xml.gz +0 -0
  444. nautobot/project-static/docs/user-guide/administration/configuration/authentication/ldap.html +884 -80
  445. nautobot/project-static/docs/user-guide/administration/configuration/authentication/remote.html +884 -80
  446. nautobot/project-static/docs/user-guide/administration/configuration/authentication/sso.html +884 -80
  447. nautobot/project-static/docs/user-guide/administration/configuration/index.html +884 -80
  448. nautobot/project-static/docs/user-guide/administration/configuration/optional-settings.html +983 -197
  449. nautobot/project-static/docs/user-guide/administration/configuration/required-settings.html +884 -80
  450. nautobot/project-static/docs/user-guide/administration/configuration/time-zones.html +884 -80
  451. nautobot/project-static/docs/user-guide/administration/guides/caching.html +884 -80
  452. nautobot/project-static/docs/user-guide/administration/guides/celery-queues.html +888 -84
  453. nautobot/project-static/docs/user-guide/administration/guides/healthcheck.html +884 -80
  454. nautobot/project-static/docs/user-guide/administration/guides/permissions.html +884 -80
  455. nautobot/project-static/docs/user-guide/administration/guides/prometheus-metrics.html +884 -80
  456. nautobot/project-static/docs/user-guide/administration/guides/replicating-nautobot.html +884 -80
  457. nautobot/project-static/docs/user-guide/administration/guides/request-profiling.html +884 -80
  458. nautobot/project-static/docs/user-guide/administration/guides/s3-django-storage.html +884 -80
  459. nautobot/project-static/docs/user-guide/administration/installation/app-install.html +884 -80
  460. nautobot/project-static/docs/user-guide/administration/installation/external-authentication.html +884 -80
  461. nautobot/project-static/docs/user-guide/administration/installation/http-server.html +884 -80
  462. nautobot/project-static/docs/user-guide/administration/installation/index.html +888 -80
  463. nautobot/project-static/docs/user-guide/administration/installation/install_system.html +884 -80
  464. nautobot/project-static/docs/user-guide/administration/installation/nautobot.html +884 -80
  465. nautobot/project-static/docs/user-guide/administration/installation/services.html +888 -80
  466. nautobot/project-static/docs/user-guide/administration/installation-extras/docker.html +900 -91
  467. nautobot/project-static/docs/user-guide/administration/installation-extras/health-checks.html +884 -80
  468. nautobot/project-static/docs/user-guide/administration/installation-extras/selinux-troubleshooting.html +884 -80
  469. nautobot/project-static/docs/user-guide/administration/migration/migrating-from-netbox.html +884 -80
  470. nautobot/project-static/docs/user-guide/administration/migration/migrating-from-postgresql.html +884 -80
  471. nautobot/project-static/docs/user-guide/administration/tools/nautobot-server.html +915 -163
  472. nautobot/project-static/docs/user-guide/administration/tools/nautobot-shell.html +884 -80
  473. nautobot/project-static/docs/user-guide/administration/upgrading/database-backup.html +884 -80
  474. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/after-you-upgrade.html +884 -80
  475. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/before-you-upgrade.html +884 -80
  476. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/for-developers.html +884 -80
  477. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/index.html +884 -80
  478. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/whats-changed.html +884 -80
  479. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/region-and-site-data-migration-guide.html +884 -80
  480. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/upgrading-from-nautobot-v1.html +884 -80
  481. nautobot/project-static/docs/user-guide/administration/upgrading/upgrading.html +884 -80
  482. nautobot/project-static/docs/user-guide/core-data-model/circuits/circuit.html +884 -80
  483. nautobot/project-static/docs/user-guide/core-data-model/circuits/circuittermination.html +885 -81
  484. nautobot/project-static/docs/user-guide/core-data-model/circuits/circuittype.html +884 -80
  485. nautobot/project-static/docs/user-guide/core-data-model/circuits/provider.html +888 -80
  486. nautobot/project-static/docs/user-guide/core-data-model/circuits/providernetwork.html +887 -83
  487. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloud.html +8984 -0
  488. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudaccount.html +8828 -0
  489. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudnetwork.html +8829 -0
  490. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudnetworkprefixassignment.html +8828 -0
  491. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudresourcetype.html +8829 -0
  492. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudservice.html +8833 -0
  493. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudservicenetworkassignment.html +8828 -0
  494. nautobot/project-static/docs/user-guide/core-data-model/dcim/cable.html +898 -94
  495. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleport.html +915 -97
  496. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleporttemplate.html +915 -97
  497. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleserverport.html +910 -92
  498. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleserverporttemplate.html +915 -97
  499. nautobot/project-static/docs/user-guide/core-data-model/dcim/controller.html +898 -94
  500. nautobot/project-static/docs/user-guide/core-data-model/dcim/controllermanageddevicegroup.html +898 -94
  501. nautobot/project-static/docs/user-guide/core-data-model/dcim/device.html +905 -97
  502. nautobot/project-static/docs/user-guide/core-data-model/dcim/devicebay.html +912 -108
  503. nautobot/project-static/docs/user-guide/core-data-model/dcim/devicebaytemplate.html +913 -109
  504. nautobot/project-static/docs/user-guide/core-data-model/dcim/devicefamily.html +910 -106
  505. nautobot/project-static/docs/user-guide/core-data-model/dcim/deviceredundancygroup.html +898 -94
  506. nautobot/project-static/docs/user-guide/core-data-model/dcim/devicetype.html +906 -97
  507. nautobot/project-static/docs/user-guide/core-data-model/dcim/frontport.html +918 -100
  508. nautobot/project-static/docs/user-guide/core-data-model/dcim/frontporttemplate.html +928 -110
  509. nautobot/project-static/docs/user-guide/core-data-model/dcim/interface.html +920 -98
  510. nautobot/project-static/docs/user-guide/core-data-model/dcim/interfaceredundancygroup.html +898 -94
  511. nautobot/project-static/docs/user-guide/core-data-model/dcim/interfacetemplate.html +929 -111
  512. nautobot/project-static/docs/user-guide/core-data-model/dcim/inventoryitem.html +920 -102
  513. nautobot/project-static/docs/user-guide/core-data-model/dcim/location.html +910 -106
  514. nautobot/project-static/docs/user-guide/core-data-model/dcim/locationtype.html +913 -109
  515. nautobot/project-static/docs/user-guide/core-data-model/dcim/manufacturer.html +914 -106
  516. nautobot/project-static/docs/user-guide/core-data-model/dcim/module.html +8828 -0
  517. nautobot/project-static/docs/user-guide/core-data-model/dcim/modulebay.html +8846 -0
  518. nautobot/project-static/docs/user-guide/core-data-model/dcim/modulebaytemplate.html +8843 -0
  519. nautobot/project-static/docs/user-guide/core-data-model/dcim/moduletype.html +8823 -0
  520. nautobot/project-static/docs/user-guide/core-data-model/dcim/platform.html +908 -104
  521. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerfeed.html +898 -94
  522. nautobot/project-static/docs/user-guide/core-data-model/dcim/poweroutlet.html +932 -75
  523. nautobot/project-static/docs/user-guide/core-data-model/dcim/poweroutlettemplate.html +916 -98
  524. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerpanel.html +898 -94
  525. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerport.html +935 -78
  526. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerporttemplate.html +913 -95
  527. nautobot/project-static/docs/user-guide/core-data-model/dcim/rack.html +921 -117
  528. nautobot/project-static/docs/user-guide/core-data-model/dcim/rackgroup.html +910 -106
  529. nautobot/project-static/docs/user-guide/core-data-model/dcim/rackreservation.html +898 -94
  530. nautobot/project-static/docs/user-guide/core-data-model/dcim/rearport.html +914 -96
  531. nautobot/project-static/docs/user-guide/core-data-model/dcim/rearporttemplate.html +916 -98
  532. nautobot/project-static/docs/user-guide/core-data-model/dcim/softwareimagefile.html +898 -94
  533. nautobot/project-static/docs/user-guide/core-data-model/dcim/softwareversion.html +898 -94
  534. nautobot/project-static/docs/user-guide/core-data-model/dcim/virtualchassis.html +898 -94
  535. nautobot/project-static/docs/user-guide/core-data-model/extras/configcontext.html +884 -80
  536. nautobot/project-static/docs/user-guide/core-data-model/extras/configcontextschema.html +884 -80
  537. nautobot/project-static/docs/user-guide/core-data-model/extras/contact.html +889 -81
  538. nautobot/project-static/docs/user-guide/core-data-model/extras/team.html +889 -81
  539. nautobot/project-static/docs/user-guide/core-data-model/ipam/ipaddress.html +884 -80
  540. nautobot/project-static/docs/user-guide/core-data-model/ipam/namespace.html +884 -80
  541. nautobot/project-static/docs/user-guide/core-data-model/ipam/prefix.html +884 -80
  542. nautobot/project-static/docs/user-guide/core-data-model/ipam/rir.html +884 -80
  543. nautobot/project-static/docs/user-guide/core-data-model/ipam/routetarget.html +884 -80
  544. nautobot/project-static/docs/user-guide/core-data-model/ipam/service.html +884 -80
  545. nautobot/project-static/docs/user-guide/core-data-model/ipam/vlan.html +884 -80
  546. nautobot/project-static/docs/user-guide/core-data-model/ipam/vlangroup.html +884 -80
  547. nautobot/project-static/docs/user-guide/core-data-model/ipam/vrf.html +884 -80
  548. nautobot/project-static/docs/user-guide/core-data-model/overview/introduction.html +884 -80
  549. nautobot/project-static/docs/user-guide/core-data-model/tenancy/tenant.html +893 -88
  550. nautobot/project-static/docs/user-guide/core-data-model/tenancy/tenantgroup.html +884 -80
  551. nautobot/project-static/docs/user-guide/core-data-model/virtualization/cluster.html +884 -80
  552. nautobot/project-static/docs/user-guide/core-data-model/virtualization/clustergroup.html +884 -80
  553. nautobot/project-static/docs/user-guide/core-data-model/virtualization/clustertype.html +884 -80
  554. nautobot/project-static/docs/user-guide/core-data-model/virtualization/virtualmachine.html +884 -80
  555. nautobot/project-static/docs/user-guide/core-data-model/virtualization/vminterface.html +889 -81
  556. nautobot/project-static/docs/user-guide/feature-guides/contacts-and-teams.html +884 -80
  557. nautobot/project-static/docs/user-guide/feature-guides/custom-fields.html +884 -80
  558. nautobot/project-static/docs/user-guide/feature-guides/getting-started/creating-devices.html +884 -80
  559. nautobot/project-static/docs/user-guide/feature-guides/getting-started/creating-location-types-and-locations.html +884 -80
  560. nautobot/project-static/docs/user-guide/feature-guides/getting-started/index.html +884 -80
  561. nautobot/project-static/docs/user-guide/feature-guides/getting-started/interfaces.html +884 -80
  562. nautobot/project-static/docs/user-guide/feature-guides/getting-started/ipam.html +884 -80
  563. nautobot/project-static/docs/user-guide/feature-guides/getting-started/platforms.html +884 -80
  564. nautobot/project-static/docs/user-guide/feature-guides/getting-started/search-bar.html +884 -80
  565. nautobot/project-static/docs/user-guide/feature-guides/getting-started/tenants.html +884 -80
  566. nautobot/project-static/docs/user-guide/feature-guides/getting-started/vlans-and-vlan-groups.html +884 -80
  567. nautobot/project-static/docs/user-guide/feature-guides/git-data-source.html +884 -80
  568. nautobot/project-static/docs/user-guide/feature-guides/graphql.html +884 -80
  569. nautobot/project-static/docs/user-guide/feature-guides/images/saved-views/clear-view-button.png +0 -0
  570. nautobot/project-static/docs/user-guide/feature-guides/images/saved-views/cleared-view.png +0 -0
  571. nautobot/project-static/docs/user-guide/feature-guides/images/saved-views/config-table-columns-to-locations.png +0 -0
  572. nautobot/project-static/docs/user-guide/feature-guides/images/saved-views/configure-button.png +0 -0
  573. nautobot/project-static/docs/user-guide/feature-guides/images/saved-views/create-saved-view-success.png +0 -0
  574. nautobot/project-static/docs/user-guide/feature-guides/images/saved-views/current-saved-view-drop-down-menu.png +0 -0
  575. nautobot/project-static/docs/user-guide/feature-guides/images/saved-views/default-location-list-view.png +0 -0
  576. nautobot/project-static/docs/user-guide/feature-guides/images/saved-views/dropdown-button-after-new-saved-view.png +0 -0
  577. nautobot/project-static/docs/user-guide/feature-guides/images/saved-views/filter-application-to-locations.png +0 -0
  578. nautobot/project-static/docs/user-guide/feature-guides/images/saved-views/filter-button.png +0 -0
  579. nautobot/project-static/docs/user-guide/feature-guides/images/saved-views/global-default-location-list-view.png +0 -0
  580. nautobot/project-static/docs/user-guide/feature-guides/images/saved-views/location-list-view-with-saved-views.png +0 -0
  581. nautobot/project-static/docs/user-guide/feature-guides/images/saved-views/navigation-menu.png +0 -0
  582. nautobot/project-static/docs/user-guide/feature-guides/images/saved-views/save-as-new-view-drop-down.png +0 -0
  583. nautobot/project-static/docs/user-guide/feature-guides/images/saved-views/save-view-modal.png +0 -0
  584. nautobot/project-static/docs/user-guide/feature-guides/images/saved-views/saved-view-admin-edit-buttons.png +0 -0
  585. nautobot/project-static/docs/user-guide/feature-guides/images/saved-views/saved-view-admin-edit-success.png +0 -0
  586. nautobot/project-static/docs/user-guide/feature-guides/images/saved-views/saved-view-admin-edit-view-unchecked.png +0 -0
  587. nautobot/project-static/docs/user-guide/feature-guides/images/saved-views/saved-view-admin-edit-view.png +0 -0
  588. nautobot/project-static/docs/user-guide/feature-guides/images/saved-views/saved-view-different-user.png +0 -0
  589. nautobot/project-static/docs/user-guide/feature-guides/images/saved-views/saved-view-modal-unchecked.png +0 -0
  590. nautobot/project-static/docs/user-guide/feature-guides/images/saved-views/set-as-my-default-button.png +0 -0
  591. nautobot/project-static/docs/user-guide/feature-guides/images/saved-views/set-as-my-default-success.png +0 -0
  592. nautobot/project-static/docs/user-guide/feature-guides/images/saved-views/unsaved-saved-view.png +0 -0
  593. nautobot/project-static/docs/user-guide/feature-guides/images/saved-views/updated-saved-view.png +0 -0
  594. nautobot/project-static/docs/user-guide/feature-guides/ip-address-merge-tool.html +884 -80
  595. nautobot/project-static/docs/user-guide/feature-guides/relationships.html +884 -80
  596. nautobot/project-static/docs/user-guide/feature-guides/software-image-files-and-versions.html +884 -80
  597. nautobot/project-static/docs/user-guide/index.html +884 -80
  598. nautobot/project-static/docs/user-guide/platform-functionality/change-logging.html +884 -80
  599. nautobot/project-static/docs/user-guide/platform-functionality/computedfield.html +884 -80
  600. nautobot/project-static/docs/user-guide/platform-functionality/customfield.html +884 -80
  601. nautobot/project-static/docs/user-guide/platform-functionality/customlink.html +884 -80
  602. nautobot/project-static/docs/user-guide/platform-functionality/dynamicgroup.html +1250 -777
  603. nautobot/project-static/docs/user-guide/platform-functionality/exporttemplate.html +887 -83
  604. nautobot/project-static/docs/user-guide/platform-functionality/externalintegration.html +884 -80
  605. nautobot/project-static/docs/user-guide/platform-functionality/gitrepository.html +884 -80
  606. nautobot/project-static/docs/user-guide/platform-functionality/graphql.html +884 -80
  607. nautobot/project-static/docs/user-guide/platform-functionality/graphqlquery.html +884 -80
  608. nautobot/project-static/docs/user-guide/platform-functionality/imageattachment.html +884 -80
  609. nautobot/project-static/docs/user-guide/platform-functionality/jobs/index.html +884 -80
  610. nautobot/project-static/docs/user-guide/platform-functionality/jobs/job-scheduling-and-approvals.html +887 -83
  611. nautobot/project-static/docs/user-guide/platform-functionality/jobs/jobbutton.html +884 -80
  612. nautobot/project-static/docs/user-guide/platform-functionality/jobs/jobhook.html +884 -80
  613. nautobot/project-static/docs/user-guide/platform-functionality/jobs/models.html +888 -80
  614. nautobot/project-static/docs/user-guide/platform-functionality/metadata.html +8948 -0
  615. nautobot/project-static/docs/user-guide/platform-functionality/napalm.html +887 -83
  616. nautobot/project-static/docs/user-guide/platform-functionality/note.html +884 -80
  617. nautobot/project-static/docs/user-guide/platform-functionality/relationship.html +884 -80
  618. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/authentication.html +884 -80
  619. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/filtering.html +884 -80
  620. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/overview.html +884 -80
  621. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/ui-related-endpoints.html +884 -80
  622. nautobot/project-static/docs/user-guide/platform-functionality/role.html +887 -83
  623. nautobot/project-static/docs/user-guide/platform-functionality/savedview.html +9137 -0
  624. nautobot/project-static/docs/user-guide/platform-functionality/secret.html +887 -83
  625. nautobot/project-static/docs/user-guide/platform-functionality/staticgroupassociation.html +8933 -0
  626. nautobot/project-static/docs/user-guide/platform-functionality/status.html +884 -80
  627. nautobot/project-static/docs/user-guide/platform-functionality/tag.html +884 -80
  628. nautobot/project-static/docs/user-guide/platform-functionality/template-filters.html +942 -113
  629. nautobot/project-static/docs/user-guide/platform-functionality/users/objectpermission.html +884 -80
  630. nautobot/project-static/docs/user-guide/platform-functionality/users/token.html +884 -80
  631. nautobot/project-static/docs/user-guide/platform-functionality/webhook.html +884 -80
  632. nautobot/project-static/js/forms.js +71 -0
  633. nautobot/project-static/js/table_sorting_indicator.js +46 -0
  634. nautobot/project-static/js/tableconfig.js +6 -1
  635. nautobot/project-static/materialdesignicons-7.4.47/css/materialdesignicons.min.css +3 -0
  636. nautobot/project-static/{materialdesignicons-6.5.95 → materialdesignicons-7.4.47}/fonts/materialdesignicons-webfont.eot +0 -0
  637. nautobot/project-static/{materialdesignicons-6.5.95 → materialdesignicons-7.4.47}/fonts/materialdesignicons-webfont.ttf +0 -0
  638. nautobot/project-static/materialdesignicons-7.4.47/fonts/materialdesignicons-webfont.woff +0 -0
  639. nautobot/project-static/materialdesignicons-7.4.47/fonts/materialdesignicons-webfont.woff2 +0 -0
  640. nautobot/tenancy/__init__.py +0 -1
  641. nautobot/tenancy/apps.py +1 -0
  642. nautobot/tenancy/factory.py +3 -2
  643. nautobot/tenancy/filters/__init__.py +1 -0
  644. nautobot/tenancy/forms.py +1 -1
  645. nautobot/tenancy/templates/tenancy/tenant.html +22 -18
  646. nautobot/tenancy/views.py +11 -10
  647. nautobot/users/__init__.py +0 -1
  648. nautobot/users/api/serializers.py +1 -1
  649. nautobot/users/api/views.py +4 -2
  650. nautobot/users/apps.py +3 -2
  651. nautobot/users/factory.py +3 -3
  652. nautobot/users/migrations/0010_user_default_saved_views.py +20 -0
  653. nautobot/users/models.py +12 -0
  654. nautobot/users/tests/test_filters.py +6 -3
  655. nautobot/users/urls.py +8 -0
  656. nautobot/virtualization/__init__.py +0 -1
  657. nautobot/virtualization/apps.py +1 -0
  658. nautobot/virtualization/filters.py +6 -1
  659. nautobot/virtualization/forms.py +11 -3
  660. nautobot/virtualization/graphql/types.py +2 -2
  661. nautobot/virtualization/migrations/0029_add_role_field_to_interface_models.py +27 -0
  662. nautobot/virtualization/migrations/0030_alter_virtualmachine_local_config_context_data_owner_content_type_and_more.py +67 -0
  663. nautobot/virtualization/tables.py +15 -5
  664. nautobot/virtualization/templates/virtualization/virtualmachine.html +1 -1
  665. nautobot/virtualization/templates/virtualization/vminterface.html +7 -1
  666. nautobot/virtualization/templates/virtualization/vminterface_edit.html +1 -0
  667. nautobot/virtualization/tests/test_api.py +9 -4
  668. nautobot/virtualization/tests/test_filters.py +22 -0
  669. nautobot/virtualization/tests/test_models.py +7 -3
  670. nautobot/virtualization/tests/test_views.py +19 -3
  671. nautobot/virtualization/urls.py +2 -2
  672. nautobot/virtualization/views.py +10 -32
  673. {nautobot-2.2.9.dist-info → nautobot-2.3.0b1.dist-info}/METADATA +21 -19
  674. {nautobot-2.2.9.dist-info → nautobot-2.3.0b1.dist-info}/RECORD +679 -559
  675. nautobot/project-static/materialdesignicons-6.5.95/.github/ISSUE_TEMPLATE.md +0 -3
  676. nautobot/project-static/materialdesignicons-6.5.95/README.md +0 -25
  677. nautobot/project-static/materialdesignicons-6.5.95/css/materialdesignicons.css +0 -26654
  678. nautobot/project-static/materialdesignicons-6.5.95/css/materialdesignicons.css.map +0 -16
  679. nautobot/project-static/materialdesignicons-6.5.95/css/materialdesignicons.min.css +0 -3
  680. nautobot/project-static/materialdesignicons-6.5.95/css/materialdesignicons.min.css.map +0 -16
  681. nautobot/project-static/materialdesignicons-6.5.95/fonts/materialdesignicons-webfont.woff +0 -0
  682. nautobot/project-static/materialdesignicons-6.5.95/fonts/materialdesignicons-webfont.woff2 +0 -0
  683. nautobot/project-static/materialdesignicons-6.5.95/package.json +0 -28
  684. nautobot/project-static/materialdesignicons-6.5.95/preview.html +0 -717
  685. nautobot/project-static/materialdesignicons-6.5.95/scss/_animated.scss +0 -27
  686. nautobot/project-static/materialdesignicons-6.5.95/scss/_core.scss +0 -10
  687. nautobot/project-static/materialdesignicons-6.5.95/scss/_extras.scss +0 -65
  688. nautobot/project-static/materialdesignicons-6.5.95/scss/_functions.scss +0 -20
  689. nautobot/project-static/materialdesignicons-6.5.95/scss/_icons.scss +0 -10
  690. nautobot/project-static/materialdesignicons-6.5.95/scss/_path.scss +0 -10
  691. nautobot/project-static/materialdesignicons-6.5.95/scss/_variables.scss +0 -6606
  692. nautobot/project-static/materialdesignicons-6.5.95/scss/materialdesignicons.scss +0 -8
  693. /nautobot/project-static/{materialdesignicons-6.5.95 → materialdesignicons-7.4.47}/LICENSE +0 -0
  694. {nautobot-2.2.9.dist-info → nautobot-2.3.0b1.dist-info}/LICENSE.txt +0 -0
  695. {nautobot-2.2.9.dist-info → nautobot-2.3.0b1.dist-info}/NOTICE +0 -0
  696. {nautobot-2.2.9.dist-info → nautobot-2.3.0b1.dist-info}/WHEEL +0 -0
  697. {nautobot-2.2.9.dist-info → nautobot-2.3.0b1.dist-info}/entry_points.txt +0 -0
@@ -238,7 +238,7 @@
238
238
 
239
239
 
240
240
  <li class="md-tabs__item">
241
- <a href="../../../index.html" class="md-tabs__link">
241
+ <a href="../../../overview/index.html" class="md-tabs__link">
242
242
 
243
243
 
244
244
 
@@ -409,7 +409,7 @@
409
409
 
410
410
 
411
411
  <div class="md-nav__link md-nav__container">
412
- <a href="../../../index.html" class="md-nav__link ">
412
+ <a href="../../../overview/index.html" class="md-nav__link ">
413
413
 
414
414
 
415
415
  <span class="md-ellipsis">
@@ -2484,21 +2484,637 @@
2484
2484
  <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_3_3" >
2485
2485
 
2486
2486
 
2487
- <label class="md-nav__link" for="__nav_2_3_3" id="__nav_2_3_3_label" tabindex="0">
2487
+
2488
+ <div class="md-nav__link md-nav__container">
2489
+ <a href="../../../user-guide/core-data-model/cloud/cloud.html" class="md-nav__link ">
2490
+
2491
+
2492
+ <span class="md-ellipsis">
2493
+ Cloud
2494
+ </span>
2495
+
2496
+
2497
+ </a>
2498
+
2499
+
2500
+ <label class="md-nav__link " for="__nav_2_3_3" id="__nav_2_3_3_label" tabindex="0">
2501
+ <span class="md-nav__icon md-icon"></span>
2502
+ </label>
2503
+
2504
+ </div>
2505
+
2506
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_3_3_label" aria-expanded="false">
2507
+ <label class="md-nav__title" for="__nav_2_3_3">
2508
+ <span class="md-nav__icon md-icon"></span>
2509
+ Cloud
2510
+ </label>
2511
+ <ul class="md-nav__list" data-md-scrollfix>
2512
+
2513
+
2514
+
2515
+
2516
+
2517
+
2518
+
2519
+ <li class="md-nav__item">
2520
+ <a href="../../../user-guide/core-data-model/cloud/cloudaccount.html" class="md-nav__link">
2521
+
2522
+
2523
+ <span class="md-ellipsis">
2524
+ Cloud Account
2525
+ </span>
2526
+
2527
+
2528
+ </a>
2529
+ </li>
2530
+
2531
+
2532
+
2533
+
2534
+
2535
+
2536
+
2537
+
2538
+
2539
+
2540
+ <li class="md-nav__item">
2541
+ <a href="../../../user-guide/core-data-model/cloud/cloudnetwork.html" class="md-nav__link">
2542
+
2543
+
2544
+ <span class="md-ellipsis">
2545
+ Cloud Network
2546
+ </span>
2547
+
2548
+
2549
+ </a>
2550
+ </li>
2551
+
2552
+
2553
+
2554
+
2555
+
2556
+
2557
+
2558
+
2559
+
2560
+
2561
+ <li class="md-nav__item">
2562
+ <a href="../../../user-guide/core-data-model/cloud/cloudnetworkprefixassignment.html" class="md-nav__link">
2563
+
2564
+
2565
+ <span class="md-ellipsis">
2566
+ Cloud Network Prefix Assignment
2567
+ </span>
2568
+
2569
+
2570
+ </a>
2571
+ </li>
2572
+
2573
+
2574
+
2575
+
2576
+
2577
+
2578
+
2579
+
2580
+
2581
+
2582
+ <li class="md-nav__item">
2583
+ <a href="../../../user-guide/core-data-model/cloud/cloudresourcetype.html" class="md-nav__link">
2584
+
2585
+
2586
+ <span class="md-ellipsis">
2587
+ Cloud Resource Type
2588
+ </span>
2589
+
2590
+
2591
+ </a>
2592
+ </li>
2593
+
2594
+
2595
+
2596
+
2597
+
2598
+
2599
+
2600
+
2601
+
2602
+
2603
+ <li class="md-nav__item">
2604
+ <a href="../../../user-guide/core-data-model/cloud/cloudservice.html" class="md-nav__link">
2605
+
2606
+
2607
+ <span class="md-ellipsis">
2608
+ Cloud Service
2609
+ </span>
2610
+
2611
+
2612
+ </a>
2613
+ </li>
2614
+
2615
+
2616
+
2617
+
2618
+
2619
+
2620
+
2621
+
2622
+
2623
+
2624
+ <li class="md-nav__item">
2625
+ <a href="../../../user-guide/core-data-model/cloud/cloudservicenetworkassignment.html" class="md-nav__link">
2626
+
2627
+
2628
+ <span class="md-ellipsis">
2629
+ Cloud Service Network Assignment
2630
+ </span>
2631
+
2632
+
2633
+ </a>
2634
+ </li>
2635
+
2636
+
2637
+
2638
+
2639
+ </ul>
2640
+ </nav>
2641
+
2642
+ </li>
2643
+
2644
+
2645
+
2646
+
2647
+
2648
+
2649
+
2650
+
2651
+
2652
+
2653
+
2654
+
2655
+
2656
+
2657
+
2658
+
2659
+
2660
+ <li class="md-nav__item md-nav__item--nested">
2661
+
2662
+
2663
+
2664
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_3_4" >
2665
+
2666
+
2667
+ <label class="md-nav__link" for="__nav_2_3_4" id="__nav_2_3_4_label" tabindex="0">
2668
+
2669
+
2670
+ <span class="md-ellipsis">
2671
+ DCIM
2672
+ </span>
2673
+
2674
+
2675
+ <span class="md-nav__icon md-icon"></span>
2676
+ </label>
2677
+
2678
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_3_4_label" aria-expanded="false">
2679
+ <label class="md-nav__title" for="__nav_2_3_4">
2680
+ <span class="md-nav__icon md-icon"></span>
2681
+ DCIM
2682
+ </label>
2683
+ <ul class="md-nav__list" data-md-scrollfix>
2684
+
2685
+
2686
+
2687
+
2688
+
2689
+
2690
+
2691
+ <li class="md-nav__item">
2692
+ <a href="../../../user-guide/core-data-model/dcim/locationtype.html" class="md-nav__link">
2693
+
2694
+
2695
+ <span class="md-ellipsis">
2696
+ Location Type
2697
+ </span>
2698
+
2699
+
2700
+ </a>
2701
+ </li>
2702
+
2703
+
2704
+
2705
+
2706
+
2707
+
2708
+
2709
+
2710
+
2711
+
2712
+ <li class="md-nav__item">
2713
+ <a href="../../../user-guide/core-data-model/dcim/location.html" class="md-nav__link">
2714
+
2715
+
2716
+ <span class="md-ellipsis">
2717
+ Location
2718
+ </span>
2719
+
2720
+
2721
+ </a>
2722
+ </li>
2723
+
2724
+
2725
+
2726
+
2727
+
2728
+
2729
+
2730
+
2731
+
2732
+
2733
+ <li class="md-nav__item">
2734
+ <a href="../../../user-guide/core-data-model/dcim/rackgroup.html" class="md-nav__link">
2735
+
2736
+
2737
+ <span class="md-ellipsis">
2738
+ Rack Group
2739
+ </span>
2740
+
2741
+
2742
+ </a>
2743
+ </li>
2744
+
2745
+
2746
+
2747
+
2748
+
2749
+
2750
+
2751
+
2752
+
2753
+
2754
+ <li class="md-nav__item">
2755
+ <a href="../../../user-guide/core-data-model/dcim/rack.html" class="md-nav__link">
2756
+
2757
+
2758
+ <span class="md-ellipsis">
2759
+ Rack
2760
+ </span>
2761
+
2762
+
2763
+ </a>
2764
+ </li>
2765
+
2766
+
2767
+
2768
+
2769
+
2770
+
2771
+
2772
+
2773
+
2774
+
2775
+ <li class="md-nav__item">
2776
+ <a href="../../../user-guide/core-data-model/dcim/manufacturer.html" class="md-nav__link">
2777
+
2778
+
2779
+ <span class="md-ellipsis">
2780
+ Manufacturer
2781
+ </span>
2782
+
2783
+
2784
+ </a>
2785
+ </li>
2786
+
2787
+
2788
+
2789
+
2790
+
2791
+
2792
+
2793
+
2794
+
2795
+
2796
+ <li class="md-nav__item">
2797
+ <a href="../../../user-guide/core-data-model/dcim/devicefamily.html" class="md-nav__link">
2798
+
2799
+
2800
+ <span class="md-ellipsis">
2801
+ Device Family
2802
+ </span>
2803
+
2804
+
2805
+ </a>
2806
+ </li>
2807
+
2808
+
2809
+
2810
+
2811
+
2812
+
2813
+
2814
+
2815
+
2816
+
2817
+ <li class="md-nav__item">
2818
+ <a href="../../../user-guide/core-data-model/dcim/platform.html" class="md-nav__link">
2819
+
2820
+
2821
+ <span class="md-ellipsis">
2822
+ Platform
2823
+ </span>
2824
+
2825
+
2826
+ </a>
2827
+ </li>
2828
+
2829
+
2830
+
2831
+
2832
+
2833
+
2834
+
2835
+
2836
+
2837
+
2838
+
2839
+
2840
+
2841
+
2842
+
2843
+
2844
+
2845
+ <li class="md-nav__item md-nav__item--nested">
2846
+
2847
+
2848
+
2849
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_3_4_8" >
2850
+
2851
+
2852
+
2853
+ <div class="md-nav__link md-nav__container">
2854
+ <a href="../../../user-guide/core-data-model/dcim/devicetype.html" class="md-nav__link ">
2855
+
2856
+
2857
+ <span class="md-ellipsis">
2858
+ Device Type
2859
+ </span>
2860
+
2861
+
2862
+ </a>
2863
+
2864
+
2865
+ <label class="md-nav__link " for="__nav_2_3_4_8" id="__nav_2_3_4_8_label" tabindex="0">
2866
+ <span class="md-nav__icon md-icon"></span>
2867
+ </label>
2868
+
2869
+ </div>
2870
+
2871
+ <nav class="md-nav" data-md-level="4" aria-labelledby="__nav_2_3_4_8_label" aria-expanded="false">
2872
+ <label class="md-nav__title" for="__nav_2_3_4_8">
2873
+ <span class="md-nav__icon md-icon"></span>
2874
+ Device Type
2875
+ </label>
2876
+ <ul class="md-nav__list" data-md-scrollfix>
2877
+
2878
+
2879
+
2880
+
2881
+
2882
+
2883
+
2884
+ <li class="md-nav__item">
2885
+ <a href="../../../user-guide/core-data-model/dcim/consoleporttemplate.html" class="md-nav__link">
2886
+
2887
+
2888
+ <span class="md-ellipsis">
2889
+ Console Port Template
2890
+ </span>
2891
+
2892
+
2893
+ </a>
2894
+ </li>
2895
+
2896
+
2897
+
2898
+
2899
+
2900
+
2901
+
2902
+
2903
+
2904
+
2905
+ <li class="md-nav__item">
2906
+ <a href="../../../user-guide/core-data-model/dcim/consoleserverporttemplate.html" class="md-nav__link">
2907
+
2908
+
2909
+ <span class="md-ellipsis">
2910
+ Console Server Port Template
2911
+ </span>
2912
+
2913
+
2914
+ </a>
2915
+ </li>
2916
+
2917
+
2918
+
2919
+
2920
+
2921
+
2922
+
2923
+
2924
+
2925
+
2926
+ <li class="md-nav__item">
2927
+ <a href="../../../user-guide/core-data-model/dcim/devicebaytemplate.html" class="md-nav__link">
2928
+
2929
+
2930
+ <span class="md-ellipsis">
2931
+ Device Bay Template
2932
+ </span>
2933
+
2934
+
2935
+ </a>
2936
+ </li>
2937
+
2938
+
2939
+
2940
+
2941
+
2942
+
2943
+
2944
+
2945
+
2946
+
2947
+ <li class="md-nav__item">
2948
+ <a href="../../../user-guide/core-data-model/dcim/frontporttemplate.html" class="md-nav__link">
2949
+
2950
+
2951
+ <span class="md-ellipsis">
2952
+ Front Port Template
2953
+ </span>
2954
+
2955
+
2956
+ </a>
2957
+ </li>
2958
+
2959
+
2960
+
2961
+
2962
+
2963
+
2964
+
2965
+
2966
+
2967
+
2968
+ <li class="md-nav__item">
2969
+ <a href="../../../user-guide/core-data-model/dcim/interfacetemplate.html" class="md-nav__link">
2970
+
2971
+
2972
+ <span class="md-ellipsis">
2973
+ Interface Template
2974
+ </span>
2975
+
2976
+
2977
+ </a>
2978
+ </li>
2979
+
2980
+
2981
+
2982
+
2983
+
2984
+
2985
+
2986
+
2987
+
2988
+
2989
+ <li class="md-nav__item">
2990
+ <a href="../../../user-guide/core-data-model/dcim/modulebaytemplate.html" class="md-nav__link">
2991
+
2992
+
2993
+ <span class="md-ellipsis">
2994
+ Module Bay Template
2995
+ </span>
2996
+
2997
+
2998
+ </a>
2999
+ </li>
3000
+
3001
+
3002
+
3003
+
3004
+
3005
+
3006
+
3007
+
3008
+
3009
+
3010
+ <li class="md-nav__item">
3011
+ <a href="../../../user-guide/core-data-model/dcim/poweroutlettemplate.html" class="md-nav__link">
3012
+
3013
+
3014
+ <span class="md-ellipsis">
3015
+ Power Outlet Template
3016
+ </span>
3017
+
3018
+
3019
+ </a>
3020
+ </li>
3021
+
3022
+
3023
+
3024
+
3025
+
3026
+
3027
+
3028
+
3029
+
3030
+
3031
+ <li class="md-nav__item">
3032
+ <a href="../../../user-guide/core-data-model/dcim/powerporttemplate.html" class="md-nav__link">
3033
+
3034
+
3035
+ <span class="md-ellipsis">
3036
+ Power Port Template
3037
+ </span>
3038
+
3039
+
3040
+ </a>
3041
+ </li>
3042
+
3043
+
3044
+
3045
+
3046
+
3047
+
3048
+
3049
+
3050
+
3051
+
3052
+ <li class="md-nav__item">
3053
+ <a href="../../../user-guide/core-data-model/dcim/rearporttemplate.html" class="md-nav__link">
3054
+
3055
+
3056
+ <span class="md-ellipsis">
3057
+ Rear Port Template
3058
+ </span>
3059
+
3060
+
3061
+ </a>
3062
+ </li>
3063
+
3064
+
3065
+
3066
+
3067
+ </ul>
3068
+ </nav>
3069
+
3070
+ </li>
3071
+
3072
+
3073
+
2488
3074
 
3075
+
3076
+
3077
+
3078
+
3079
+
3080
+
3081
+
3082
+
3083
+
3084
+
3085
+
3086
+
3087
+
3088
+ <li class="md-nav__item md-nav__item--nested">
3089
+
3090
+
3091
+
3092
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_3_4_9" >
3093
+
3094
+
3095
+
3096
+ <div class="md-nav__link md-nav__container">
3097
+ <a href="../../../user-guide/core-data-model/dcim/device.html" class="md-nav__link ">
3098
+
2489
3099
 
2490
3100
  <span class="md-ellipsis">
2491
- DCIM
3101
+ Device
2492
3102
  </span>
2493
3103
 
2494
3104
 
2495
- <span class="md-nav__icon md-icon"></span>
2496
- </label>
3105
+ </a>
3106
+
3107
+
3108
+ <label class="md-nav__link " for="__nav_2_3_4_9" id="__nav_2_3_4_9_label" tabindex="0">
3109
+ <span class="md-nav__icon md-icon"></span>
3110
+ </label>
3111
+
3112
+ </div>
2497
3113
 
2498
- <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_3_3_label" aria-expanded="false">
2499
- <label class="md-nav__title" for="__nav_2_3_3">
3114
+ <nav class="md-nav" data-md-level="4" aria-labelledby="__nav_2_3_4_9_label" aria-expanded="false">
3115
+ <label class="md-nav__title" for="__nav_2_3_4_9">
2500
3116
  <span class="md-nav__icon md-icon"></span>
2501
- DCIM
3117
+ Device
2502
3118
  </label>
2503
3119
  <ul class="md-nav__list" data-md-scrollfix>
2504
3120
 
@@ -2509,11 +3125,11 @@
2509
3125
 
2510
3126
 
2511
3127
  <li class="md-nav__item">
2512
- <a href="../../../user-guide/core-data-model/dcim/locationtype.html" class="md-nav__link">
3128
+ <a href="../../../user-guide/core-data-model/dcim/consoleport.html" class="md-nav__link">
2513
3129
 
2514
3130
 
2515
3131
  <span class="md-ellipsis">
2516
- Location Type
3132
+ Console Port
2517
3133
  </span>
2518
3134
 
2519
3135
 
@@ -2530,11 +3146,11 @@
2530
3146
 
2531
3147
 
2532
3148
  <li class="md-nav__item">
2533
- <a href="../../../user-guide/core-data-model/dcim/location.html" class="md-nav__link">
3149
+ <a href="../../../user-guide/core-data-model/dcim/consoleserverport.html" class="md-nav__link">
2534
3150
 
2535
3151
 
2536
3152
  <span class="md-ellipsis">
2537
- Location
3153
+ Console Server Port
2538
3154
  </span>
2539
3155
 
2540
3156
 
@@ -2551,11 +3167,11 @@
2551
3167
 
2552
3168
 
2553
3169
  <li class="md-nav__item">
2554
- <a href="../../../user-guide/core-data-model/dcim/rackgroup.html" class="md-nav__link">
3170
+ <a href="../../../user-guide/core-data-model/dcim/devicebay.html" class="md-nav__link">
2555
3171
 
2556
3172
 
2557
3173
  <span class="md-ellipsis">
2558
- Rack Group
3174
+ Device Bay
2559
3175
  </span>
2560
3176
 
2561
3177
 
@@ -2572,11 +3188,11 @@
2572
3188
 
2573
3189
 
2574
3190
  <li class="md-nav__item">
2575
- <a href="../../../user-guide/core-data-model/dcim/rack.html" class="md-nav__link">
3191
+ <a href="../../../user-guide/core-data-model/dcim/frontport.html" class="md-nav__link">
2576
3192
 
2577
3193
 
2578
3194
  <span class="md-ellipsis">
2579
- Rack
3195
+ Front Port
2580
3196
  </span>
2581
3197
 
2582
3198
 
@@ -2593,11 +3209,11 @@
2593
3209
 
2594
3210
 
2595
3211
  <li class="md-nav__item">
2596
- <a href="../../../user-guide/core-data-model/dcim/manufacturer.html" class="md-nav__link">
3212
+ <a href="../../../user-guide/core-data-model/dcim/interface.html" class="md-nav__link">
2597
3213
 
2598
3214
 
2599
3215
  <span class="md-ellipsis">
2600
- Manufacturer
3216
+ Interface
2601
3217
  </span>
2602
3218
 
2603
3219
 
@@ -2614,11 +3230,11 @@
2614
3230
 
2615
3231
 
2616
3232
  <li class="md-nav__item">
2617
- <a href="../../../user-guide/core-data-model/dcim/devicefamily.html" class="md-nav__link">
3233
+ <a href="../../../user-guide/core-data-model/dcim/inventoryitem.html" class="md-nav__link">
2618
3234
 
2619
3235
 
2620
3236
  <span class="md-ellipsis">
2621
- Device Family
3237
+ Inventory Item
2622
3238
  </span>
2623
3239
 
2624
3240
 
@@ -2635,11 +3251,74 @@
2635
3251
 
2636
3252
 
2637
3253
  <li class="md-nav__item">
2638
- <a href="../../../user-guide/core-data-model/dcim/platform.html" class="md-nav__link">
3254
+ <a href="../../../user-guide/core-data-model/dcim/modulebay.html" class="md-nav__link">
2639
3255
 
2640
3256
 
2641
3257
  <span class="md-ellipsis">
2642
- Platform
3258
+ Module Bay
3259
+ </span>
3260
+
3261
+
3262
+ </a>
3263
+ </li>
3264
+
3265
+
3266
+
3267
+
3268
+
3269
+
3270
+
3271
+
3272
+
3273
+
3274
+ <li class="md-nav__item">
3275
+ <a href="../../../user-guide/core-data-model/dcim/powerport.html" class="md-nav__link">
3276
+
3277
+
3278
+ <span class="md-ellipsis">
3279
+ Power Port
3280
+ </span>
3281
+
3282
+
3283
+ </a>
3284
+ </li>
3285
+
3286
+
3287
+
3288
+
3289
+
3290
+
3291
+
3292
+
3293
+
3294
+
3295
+ <li class="md-nav__item">
3296
+ <a href="../../../user-guide/core-data-model/dcim/poweroutlet.html" class="md-nav__link">
3297
+
3298
+
3299
+ <span class="md-ellipsis">
3300
+ Power Outlet
3301
+ </span>
3302
+
3303
+
3304
+ </a>
3305
+ </li>
3306
+
3307
+
3308
+
3309
+
3310
+
3311
+
3312
+
3313
+
3314
+
3315
+
3316
+ <li class="md-nav__item">
3317
+ <a href="../../../user-guide/core-data-model/dcim/rearport.html" class="md-nav__link">
3318
+
3319
+
3320
+ <span class="md-ellipsis">
3321
+ Rear Port
2643
3322
  </span>
2644
3323
 
2645
3324
 
@@ -2649,6 +3328,14 @@
2649
3328
 
2650
3329
 
2651
3330
 
3331
+ </ul>
3332
+ </nav>
3333
+
3334
+ </li>
3335
+
3336
+
3337
+
3338
+
2652
3339
 
2653
3340
 
2654
3341
 
@@ -2666,32 +3353,32 @@
2666
3353
 
2667
3354
 
2668
3355
 
2669
- <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_3_3_8" >
3356
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_3_4_10" >
2670
3357
 
2671
3358
 
2672
3359
 
2673
3360
  <div class="md-nav__link md-nav__container">
2674
- <a href="../../../user-guide/core-data-model/dcim/devicetype.html" class="md-nav__link ">
3361
+ <a href="../../../user-guide/core-data-model/dcim/moduletype.html" class="md-nav__link ">
2675
3362
 
2676
3363
 
2677
3364
  <span class="md-ellipsis">
2678
- Device Type
3365
+ Module Type
2679
3366
  </span>
2680
3367
 
2681
3368
 
2682
3369
  </a>
2683
3370
 
2684
3371
 
2685
- <label class="md-nav__link " for="__nav_2_3_3_8" id="__nav_2_3_3_8_label" tabindex="0">
3372
+ <label class="md-nav__link " for="__nav_2_3_4_10" id="__nav_2_3_4_10_label" tabindex="0">
2686
3373
  <span class="md-nav__icon md-icon"></span>
2687
3374
  </label>
2688
3375
 
2689
3376
  </div>
2690
3377
 
2691
- <nav class="md-nav" data-md-level="4" aria-labelledby="__nav_2_3_3_8_label" aria-expanded="false">
2692
- <label class="md-nav__title" for="__nav_2_3_3_8">
3378
+ <nav class="md-nav" data-md-level="4" aria-labelledby="__nav_2_3_4_10_label" aria-expanded="false">
3379
+ <label class="md-nav__title" for="__nav_2_3_4_10">
2693
3380
  <span class="md-nav__icon md-icon"></span>
2694
- Device Type
3381
+ Module Type
2695
3382
  </label>
2696
3383
  <ul class="md-nav__list" data-md-scrollfix>
2697
3384
 
@@ -2744,11 +3431,11 @@
2744
3431
 
2745
3432
 
2746
3433
  <li class="md-nav__item">
2747
- <a href="../../../user-guide/core-data-model/dcim/devicebaytemplate.html" class="md-nav__link">
3434
+ <a href="../../../user-guide/core-data-model/dcim/frontporttemplate.html" class="md-nav__link">
2748
3435
 
2749
3436
 
2750
3437
  <span class="md-ellipsis">
2751
- Device Bay Template
3438
+ Front Port Template
2752
3439
  </span>
2753
3440
 
2754
3441
 
@@ -2765,11 +3452,11 @@
2765
3452
 
2766
3453
 
2767
3454
  <li class="md-nav__item">
2768
- <a href="../../../user-guide/core-data-model/dcim/frontporttemplate.html" class="md-nav__link">
3455
+ <a href="../../../user-guide/core-data-model/dcim/interfacetemplate.html" class="md-nav__link">
2769
3456
 
2770
3457
 
2771
3458
  <span class="md-ellipsis">
2772
- Front Port Template
3459
+ Interface Template
2773
3460
  </span>
2774
3461
 
2775
3462
 
@@ -2786,11 +3473,11 @@
2786
3473
 
2787
3474
 
2788
3475
  <li class="md-nav__item">
2789
- <a href="../../../user-guide/core-data-model/dcim/interfacetemplate.html" class="md-nav__link">
3476
+ <a href="../../../user-guide/core-data-model/dcim/modulebaytemplate.html" class="md-nav__link">
2790
3477
 
2791
3478
 
2792
3479
  <span class="md-ellipsis">
2793
- Interface Template
3480
+ Module Bay Template
2794
3481
  </span>
2795
3482
 
2796
3483
 
@@ -2888,32 +3575,32 @@
2888
3575
 
2889
3576
 
2890
3577
 
2891
- <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_3_3_9" >
3578
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_3_4_11" >
2892
3579
 
2893
3580
 
2894
3581
 
2895
3582
  <div class="md-nav__link md-nav__container">
2896
- <a href="../../../user-guide/core-data-model/dcim/device.html" class="md-nav__link ">
3583
+ <a href="../../../user-guide/core-data-model/dcim/module.html" class="md-nav__link ">
2897
3584
 
2898
3585
 
2899
3586
  <span class="md-ellipsis">
2900
- Device
3587
+ Module
2901
3588
  </span>
2902
3589
 
2903
3590
 
2904
3591
  </a>
2905
3592
 
2906
3593
 
2907
- <label class="md-nav__link " for="__nav_2_3_3_9" id="__nav_2_3_3_9_label" tabindex="0">
3594
+ <label class="md-nav__link " for="__nav_2_3_4_11" id="__nav_2_3_4_11_label" tabindex="0">
2908
3595
  <span class="md-nav__icon md-icon"></span>
2909
3596
  </label>
2910
3597
 
2911
3598
  </div>
2912
3599
 
2913
- <nav class="md-nav" data-md-level="4" aria-labelledby="__nav_2_3_3_9_label" aria-expanded="false">
2914
- <label class="md-nav__title" for="__nav_2_3_3_9">
3600
+ <nav class="md-nav" data-md-level="4" aria-labelledby="__nav_2_3_4_11_label" aria-expanded="false">
3601
+ <label class="md-nav__title" for="__nav_2_3_4_11">
2915
3602
  <span class="md-nav__icon md-icon"></span>
2916
- Device
3603
+ Module
2917
3604
  </label>
2918
3605
  <ul class="md-nav__list" data-md-scrollfix>
2919
3606
 
@@ -2966,11 +3653,11 @@
2966
3653
 
2967
3654
 
2968
3655
  <li class="md-nav__item">
2969
- <a href="../../../user-guide/core-data-model/dcim/devicebay.html" class="md-nav__link">
3656
+ <a href="../../../user-guide/core-data-model/dcim/frontport.html" class="md-nav__link">
2970
3657
 
2971
3658
 
2972
3659
  <span class="md-ellipsis">
2973
- Device Bay
3660
+ Front Port
2974
3661
  </span>
2975
3662
 
2976
3663
 
@@ -2987,11 +3674,11 @@
2987
3674
 
2988
3675
 
2989
3676
  <li class="md-nav__item">
2990
- <a href="../../../user-guide/core-data-model/dcim/frontport.html" class="md-nav__link">
3677
+ <a href="../../../user-guide/core-data-model/dcim/interface.html" class="md-nav__link">
2991
3678
 
2992
3679
 
2993
3680
  <span class="md-ellipsis">
2994
- Front Port
3681
+ Interface
2995
3682
  </span>
2996
3683
 
2997
3684
 
@@ -3008,11 +3695,11 @@
3008
3695
 
3009
3696
 
3010
3697
  <li class="md-nav__item">
3011
- <a href="../../../user-guide/core-data-model/dcim/interface.html" class="md-nav__link">
3698
+ <a href="../../../user-guide/core-data-model/dcim/inventoryitem.html" class="md-nav__link">
3012
3699
 
3013
3700
 
3014
3701
  <span class="md-ellipsis">
3015
- Interface
3702
+ Inventory Item
3016
3703
  </span>
3017
3704
 
3018
3705
 
@@ -3029,11 +3716,11 @@
3029
3716
 
3030
3717
 
3031
3718
  <li class="md-nav__item">
3032
- <a href="../../../user-guide/core-data-model/dcim/inventoryitem.html" class="md-nav__link">
3719
+ <a href="../../../user-guide/core-data-model/dcim/modulebay.html" class="md-nav__link">
3033
3720
 
3034
3721
 
3035
3722
  <span class="md-ellipsis">
3036
- Inventory Item
3723
+ Module Bay
3037
3724
  </span>
3038
3725
 
3039
3726
 
@@ -3370,10 +4057,10 @@
3370
4057
 
3371
4058
 
3372
4059
 
3373
- <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_3_4" >
4060
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_3_5" >
3374
4061
 
3375
4062
 
3376
- <label class="md-nav__link" for="__nav_2_3_4" id="__nav_2_3_4_label" tabindex="0">
4063
+ <label class="md-nav__link" for="__nav_2_3_5" id="__nav_2_3_5_label" tabindex="0">
3377
4064
 
3378
4065
 
3379
4066
  <span class="md-ellipsis">
@@ -3384,8 +4071,8 @@
3384
4071
  <span class="md-nav__icon md-icon"></span>
3385
4072
  </label>
3386
4073
 
3387
- <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_3_4_label" aria-expanded="false">
3388
- <label class="md-nav__title" for="__nav_2_3_4">
4074
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_3_5_label" aria-expanded="false">
4075
+ <label class="md-nav__title" for="__nav_2_3_5">
3389
4076
  <span class="md-nav__icon md-icon"></span>
3390
4077
  Extras
3391
4078
  </label>
@@ -3500,10 +4187,10 @@
3500
4187
 
3501
4188
 
3502
4189
 
3503
- <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_3_5" >
4190
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_3_6" >
3504
4191
 
3505
4192
 
3506
- <label class="md-nav__link" for="__nav_2_3_5" id="__nav_2_3_5_label" tabindex="0">
4193
+ <label class="md-nav__link" for="__nav_2_3_6" id="__nav_2_3_6_label" tabindex="0">
3507
4194
 
3508
4195
 
3509
4196
  <span class="md-ellipsis">
@@ -3514,8 +4201,8 @@
3514
4201
  <span class="md-nav__icon md-icon"></span>
3515
4202
  </label>
3516
4203
 
3517
- <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_3_5_label" aria-expanded="false">
3518
- <label class="md-nav__title" for="__nav_2_3_5">
4204
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_3_6_label" aria-expanded="false">
4205
+ <label class="md-nav__title" for="__nav_2_3_6">
3519
4206
  <span class="md-nav__icon md-icon"></span>
3520
4207
  IPAM
3521
4208
  </label>
@@ -3735,10 +4422,10 @@
3735
4422
 
3736
4423
 
3737
4424
 
3738
- <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_3_6" >
4425
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_3_7" >
3739
4426
 
3740
4427
 
3741
- <label class="md-nav__link" for="__nav_2_3_6" id="__nav_2_3_6_label" tabindex="0">
4428
+ <label class="md-nav__link" for="__nav_2_3_7" id="__nav_2_3_7_label" tabindex="0">
3742
4429
 
3743
4430
 
3744
4431
  <span class="md-ellipsis">
@@ -3749,8 +4436,8 @@
3749
4436
  <span class="md-nav__icon md-icon"></span>
3750
4437
  </label>
3751
4438
 
3752
- <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_3_6_label" aria-expanded="false">
3753
- <label class="md-nav__title" for="__nav_2_3_6">
4439
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_3_7_label" aria-expanded="false">
4440
+ <label class="md-nav__title" for="__nav_2_3_7">
3754
4441
  <span class="md-nav__icon md-icon"></span>
3755
4442
  Tenancy
3756
4443
  </label>
@@ -3823,10 +4510,10 @@
3823
4510
 
3824
4511
 
3825
4512
 
3826
- <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_3_7" >
4513
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_3_8" >
3827
4514
 
3828
4515
 
3829
- <label class="md-nav__link" for="__nav_2_3_7" id="__nav_2_3_7_label" tabindex="0">
4516
+ <label class="md-nav__link" for="__nav_2_3_8" id="__nav_2_3_8_label" tabindex="0">
3830
4517
 
3831
4518
 
3832
4519
  <span class="md-ellipsis">
@@ -3837,8 +4524,8 @@
3837
4524
  <span class="md-nav__icon md-icon"></span>
3838
4525
  </label>
3839
4526
 
3840
- <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_3_7_label" aria-expanded="false">
3841
- <label class="md-nav__title" for="__nav_2_3_7">
4527
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_3_8_label" aria-expanded="false">
4528
+ <label class="md-nav__title" for="__nav_2_3_8">
3842
4529
  <span class="md-nav__icon md-icon"></span>
3843
4530
  Virtualization
3844
4531
  </label>
@@ -4073,11 +4760,78 @@
4073
4760
 
4074
4761
 
4075
4762
  <li class="md-nav__item">
4076
- <a href="../../../user-guide/platform-functionality/customlink.html" class="md-nav__link">
4763
+ <a href="../../../user-guide/platform-functionality/customlink.html" class="md-nav__link">
4764
+
4765
+
4766
+ <span class="md-ellipsis">
4767
+ Custom Links
4768
+ </span>
4769
+
4770
+
4771
+ </a>
4772
+ </li>
4773
+
4774
+
4775
+
4776
+
4777
+
4778
+
4779
+
4780
+
4781
+
4782
+
4783
+
4784
+
4785
+
4786
+
4787
+
4788
+
4789
+
4790
+ <li class="md-nav__item md-nav__item--nested">
4791
+
4792
+
4793
+
4794
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_4_5" >
4795
+
4796
+
4797
+
4798
+ <div class="md-nav__link md-nav__container">
4799
+ <a href="../../../user-guide/platform-functionality/dynamicgroup.html" class="md-nav__link ">
4800
+
4801
+
4802
+ <span class="md-ellipsis">
4803
+ Dynamic Groups
4804
+ </span>
4805
+
4806
+
4807
+ </a>
4808
+
4809
+
4810
+ <label class="md-nav__link " for="__nav_2_4_5" id="__nav_2_4_5_label" tabindex="0">
4811
+ <span class="md-nav__icon md-icon"></span>
4812
+ </label>
4813
+
4814
+ </div>
4815
+
4816
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_4_5_label" aria-expanded="false">
4817
+ <label class="md-nav__title" for="__nav_2_4_5">
4818
+ <span class="md-nav__icon md-icon"></span>
4819
+ Dynamic Groups
4820
+ </label>
4821
+ <ul class="md-nav__list" data-md-scrollfix>
4822
+
4823
+
4824
+
4825
+
4826
+
4827
+
4828
+
4829
+ <li class="md-nav__item">
4830
+ <a href="../../../user-guide/platform-functionality/staticgroupassociation.html" class="md-nav__link">
4077
4831
 
4078
4832
 
4079
4833
  <span class="md-ellipsis">
4080
- Custom Links
4834
+ Static Group Associations
4081
4835
  </span>
4082
4836
 
4083
4837
 
@@ -4087,22 +4841,9 @@
4087
4841
 
4088
4842
 
4089
4843
 
4090
-
4091
-
4092
-
4093
-
4094
-
4095
-
4096
- <li class="md-nav__item">
4097
- <a href="../../../user-guide/platform-functionality/dynamicgroup.html" class="md-nav__link">
4098
-
4099
-
4100
- <span class="md-ellipsis">
4101
- Dynamic Groups
4102
- </span>
4103
-
4104
-
4105
- </a>
4844
+ </ul>
4845
+ </nav>
4846
+
4106
4847
  </li>
4107
4848
 
4108
4849
 
@@ -4411,6 +5152,27 @@
4411
5152
 
4412
5153
 
4413
5154
 
5155
+ <li class="md-nav__item">
5156
+ <a href="../../../user-guide/platform-functionality/metadata.html" class="md-nav__link">
5157
+
5158
+
5159
+ <span class="md-ellipsis">
5160
+ Metadata
5161
+ </span>
5162
+
5163
+
5164
+ </a>
5165
+ </li>
5166
+
5167
+
5168
+
5169
+
5170
+
5171
+
5172
+
5173
+
5174
+
5175
+
4414
5176
  <li class="md-nav__item">
4415
5177
  <a href="../../../user-guide/platform-functionality/napalm.html" class="md-nav__link">
4416
5178
 
@@ -4485,7 +5247,7 @@
4485
5247
 
4486
5248
 
4487
5249
 
4488
- <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_4_15" >
5250
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_4_16" >
4489
5251
 
4490
5252
 
4491
5253
 
@@ -4501,14 +5263,14 @@
4501
5263
  </a>
4502
5264
 
4503
5265
 
4504
- <label class="md-nav__link " for="__nav_2_4_15" id="__nav_2_4_15_label" tabindex="0">
5266
+ <label class="md-nav__link " for="__nav_2_4_16" id="__nav_2_4_16_label" tabindex="0">
4505
5267
  <span class="md-nav__icon md-icon"></span>
4506
5268
  </label>
4507
5269
 
4508
5270
  </div>
4509
5271
 
4510
- <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_4_15_label" aria-expanded="false">
4511
- <label class="md-nav__title" for="__nav_2_4_15">
5272
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_4_16_label" aria-expanded="false">
5273
+ <label class="md-nav__title" for="__nav_2_4_16">
4512
5274
  <span class="md-nav__icon md-icon"></span>
4513
5275
  REST API
4514
5276
  </label>
@@ -4612,6 +5374,27 @@
4612
5374
 
4613
5375
 
4614
5376
 
5377
+ <li class="md-nav__item">
5378
+ <a href="../../../user-guide/platform-functionality/savedview.html" class="md-nav__link">
5379
+
5380
+
5381
+ <span class="md-ellipsis">
5382
+ Saved Views
5383
+ </span>
5384
+
5385
+
5386
+ </a>
5387
+ </li>
5388
+
5389
+
5390
+
5391
+
5392
+
5393
+
5394
+
5395
+
5396
+
5397
+
4615
5398
  <li class="md-nav__item">
4616
5399
  <a href="../../../user-guide/platform-functionality/secret.html" class="md-nav__link">
4617
5400
 
@@ -4707,10 +5490,10 @@
4707
5490
 
4708
5491
 
4709
5492
 
4710
- <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_4_21" >
5493
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_4_23" >
4711
5494
 
4712
5495
 
4713
- <label class="md-nav__link" for="__nav_2_4_21" id="__nav_2_4_21_label" tabindex="0">
5496
+ <label class="md-nav__link" for="__nav_2_4_23" id="__nav_2_4_23_label" tabindex="0">
4714
5497
 
4715
5498
 
4716
5499
  <span class="md-ellipsis">
@@ -4721,8 +5504,8 @@
4721
5504
  <span class="md-nav__icon md-icon"></span>
4722
5505
  </label>
4723
5506
 
4724
- <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_4_21_label" aria-expanded="false">
4725
- <label class="md-nav__title" for="__nav_2_4_21">
5507
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_4_23_label" aria-expanded="false">
5508
+ <label class="md-nav__title" for="__nav_2_4_23">
4726
5509
  <span class="md-nav__icon md-icon"></span>
4727
5510
  Users
4728
5511
  </label>
@@ -6459,6 +7242,15 @@
6459
7242
  </span>
6460
7243
  </a>
6461
7244
 
7245
+ </li>
7246
+
7247
+ <li class="md-nav__item">
7248
+ <a href="#nautobot.apps.forms.ContactTeamModelFilterFormMixin" class="md-nav__link">
7249
+ <span class="md-ellipsis">
7250
+ ContactTeamModelFilterFormMixin
7251
+ </span>
7252
+ </a>
7253
+
6462
7254
  </li>
6463
7255
 
6464
7256
  <li class="md-nav__item">
@@ -6528,6 +7320,15 @@
6528
7320
  </ul>
6529
7321
  </nav>
6530
7322
 
7323
+ </li>
7324
+
7325
+ <li class="md-nav__item">
7326
+ <a href="#nautobot.apps.forms.DynamicGroupModelFormMixin" class="md-nav__link">
7327
+ <span class="md-ellipsis">
7328
+ DynamicGroupModelFormMixin
7329
+ </span>
7330
+ </a>
7331
+
6531
7332
  </li>
6532
7333
 
6533
7334
  <li class="md-nav__item">
@@ -8195,6 +8996,27 @@
8195
8996
 
8196
8997
 
8197
8998
 
8999
+ <li class="md-nav__item">
9000
+ <a href="../../../release-notes/version-2.3.html" class="md-nav__link">
9001
+
9002
+
9003
+ <span class="md-ellipsis">
9004
+ Version 2.3
9005
+ </span>
9006
+
9007
+
9008
+ </a>
9009
+ </li>
9010
+
9011
+
9012
+
9013
+
9014
+
9015
+
9016
+
9017
+
9018
+
9019
+
8198
9020
  <li class="md-nav__item">
8199
9021
  <a href="../../../release-notes/version-2.2.html" class="md-nav__link">
8200
9022
 
@@ -8996,6 +9818,15 @@
8996
9818
  </span>
8997
9819
  </a>
8998
9820
 
9821
+ </li>
9822
+
9823
+ <li class="md-nav__item">
9824
+ <a href="#nautobot.apps.forms.ContactTeamModelFilterFormMixin" class="md-nav__link">
9825
+ <span class="md-ellipsis">
9826
+ ContactTeamModelFilterFormMixin
9827
+ </span>
9828
+ </a>
9829
+
8999
9830
  </li>
9000
9831
 
9001
9832
  <li class="md-nav__item">
@@ -9065,6 +9896,15 @@
9065
9896
  </ul>
9066
9897
  </nav>
9067
9898
 
9899
+ </li>
9900
+
9901
+ <li class="md-nav__item">
9902
+ <a href="#nautobot.apps.forms.DynamicGroupModelFormMixin" class="md-nav__link">
9903
+ <span class="md-ellipsis">
9904
+ DynamicGroupModelFormMixin
9905
+ </span>
9906
+ </a>
9907
+
9068
9908
  </li>
9069
9909
 
9070
9910
  <li class="md-nav__item">
@@ -9660,16 +10500,16 @@
9660
10500
 
9661
10501
 
9662
10502
  <h1 id="nautobot.apps.forms" class="doc doc-heading">
9663
- <code>nautobot.apps.forms</code>
10503
+ <code>nautobot.apps.forms</code>
9664
10504
 
9665
10505
 
9666
10506
  <a href="#nautobot.apps.forms" class="headerlink" title="Permanent link">&para;</a></h1>
9667
10507
 
9668
- <div class="doc doc-contents first">
9669
-
10508
+ <div class="doc doc-contents first">
10509
+
9670
10510
  <p>Forms and fields for apps to use.</p>
9671
10511
 
9672
-
10512
+
9673
10513
 
9674
10514
  <div class="doc doc-children">
9675
10515
 
@@ -9685,68 +10525,66 @@
9685
10525
 
9686
10526
 
9687
10527
  <h2 id="nautobot.apps.forms.APISelect" class="doc doc-heading">
9688
- <code>nautobot.apps.forms.APISelect</code>
10528
+ <code>nautobot.apps.forms.APISelect</code>
9689
10529
 
9690
10530
 
9691
10531
  <a href="#nautobot.apps.forms.APISelect" class="headerlink" title="Permanent link">&para;</a></h2>
9692
10532
 
9693
10533
 
9694
- <div class="doc doc-contents ">
9695
- <p class="doc doc-class-bases">
9696
- Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.forms.widgets.SelectWithDisabled" href="#nautobot.apps.forms.SelectWithDisabled">SelectWithDisabled</a></code></p>
10534
+ <div class="doc doc-contents ">
10535
+ <p class="doc doc-class-bases">
10536
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.forms.widgets.SelectWithDisabled" href="#nautobot.apps.forms.SelectWithDisabled">SelectWithDisabled</a></code></p>
9697
10537
 
9698
-
9699
- <p>A select widget populated via an API call</p>
9700
10538
 
10539
+ <p>A select widget populated via an API call</p>
9701
10540
 
9702
10541
 
9703
- <p><strong>Parameters:</strong></p>
9704
- <table>
9705
- <thead>
9706
- <tr>
9707
- <th>Name</th>
9708
- <th>Type</th>
9709
- <th>Description</th>
9710
- <th>Default</th>
9711
- </tr>
9712
- </thead>
9713
- <tbody>
9714
- <tr>
9715
- <td><code>api_url</code></td>
9716
- <td>
9717
- <code>str</code>
9718
- </td>
9719
- <td>
9720
- <div class="doc-md-description">
9721
- <p>API endpoint URL. Required if not set automatically by the parent field.</p>
9722
- </div>
9723
- </td>
9724
- <td>
9725
- <code>None</code>
9726
- </td>
9727
- </tr>
10542
+ <p><span class="doc-section-title">Parameters:</span></p>
10543
+ <table>
10544
+ <thead>
9728
10545
  <tr>
9729
- <td><code>api_version</code></td>
9730
- <td>
9731
- <code>str</code>
9732
- </td>
9733
- <td>
9734
- <div class="doc-md-description">
9735
- <p>API version.</p>
9736
- </div>
9737
- </td>
9738
- <td>
9739
- <code>None</code>
9740
- </td>
10546
+ <th>Name</th>
10547
+ <th>Type</th>
10548
+ <th>Description</th>
10549
+ <th>Default</th>
9741
10550
  </tr>
9742
- </tbody>
9743
- </table>
10551
+ </thead>
10552
+ <tbody>
10553
+ <tr class="doc-section-item">
10554
+ <td><code>api_url</code></td>
10555
+ <td>
10556
+ <code>str</code>
10557
+ </td>
10558
+ <td>
10559
+ <div class="doc-md-description">
10560
+ <p>API endpoint URL. Required if not set automatically by the parent field.</p>
10561
+ </div>
10562
+ </td>
10563
+ <td>
10564
+ <code>None</code>
10565
+ </td>
10566
+ </tr>
10567
+ <tr class="doc-section-item">
10568
+ <td><code>api_version</code></td>
10569
+ <td>
10570
+ <code>str</code>
10571
+ </td>
10572
+ <td>
10573
+ <div class="doc-md-description">
10574
+ <p>API version.</p>
10575
+ </div>
10576
+ </td>
10577
+ <td>
10578
+ <code>None</code>
10579
+ </td>
10580
+ </tr>
10581
+ </tbody>
10582
+ </table>
9744
10583
 
9745
10584
 
9746
-
9747
10585
 
9748
- <div class="doc doc-children">
9749
10586
 
10587
+ <div class="doc doc-children">
9750
10588
 
9751
10589
 
9752
10590
 
@@ -9759,20 +10597,19 @@
9759
10597
  <div class="doc doc-object doc-function">
9760
10598
 
9761
10599
 
9762
-
9763
10600
  <h3 id="nautobot.apps.forms.APISelect.add_query_param" class="doc doc-heading">
9764
- <code class="highlight language-python"><span class="n">add_query_param</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span></code>
10601
+ <code class="highlight language-python"><span class="n">add_query_param</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span></code>
9765
10602
 
9766
10603
  <a href="#nautobot.apps.forms.APISelect.add_query_param" class="headerlink" title="Permanent link">&para;</a></h3>
9767
10604
 
9768
10605
 
9769
- <div class="doc doc-contents ">
9770
-
10606
+ <div class="doc doc-contents ">
10607
+
9771
10608
  <p>Add details for an additional query param in the form of a data-* JSON-encoded list attribute.</p>
9772
10609
  <p>:param name: The name of the query param
9773
10610
  :param value: The value of the query param</p>
9774
10611
 
9775
- </div>
10612
+ </div>
9776
10613
 
9777
10614
  </div>
9778
10615
 
@@ -9780,8 +10617,7 @@
9780
10617
 
9781
10618
  </div>
9782
10619
 
9783
- </div>
9784
-
10620
+ </div>
9785
10621
 
9786
10622
  </div>
9787
10623
 
@@ -9790,24 +10626,23 @@
9790
10626
 
9791
10627
 
9792
10628
  <h2 id="nautobot.apps.forms.AddressFieldMixin" class="doc doc-heading">
9793
- <code>nautobot.apps.forms.AddressFieldMixin</code>
10629
+ <code>nautobot.apps.forms.AddressFieldMixin</code>
9794
10630
 
9795
10631
 
9796
10632
  <a href="#nautobot.apps.forms.AddressFieldMixin" class="headerlink" title="Permanent link">&para;</a></h2>
9797
10633
 
9798
10634
 
9799
- <div class="doc doc-contents ">
9800
- <p class="doc doc-class-bases">
9801
- Bases: <code><span title="django.forms.ModelForm">ModelForm</span></code></p>
10635
+ <div class="doc doc-contents ">
10636
+ <p class="doc doc-class-bases">
10637
+ Bases: <code><span title="django.forms.ModelForm">ModelForm</span></code></p>
10638
+
9802
10639
 
9803
-
9804
10640
  <p>ModelForm mixin for IPAddress based models.</p>
9805
10641
 
9806
10642
 
9807
-
9808
10643
 
9809
- <div class="doc doc-children">
9810
10644
 
10645
+ <div class="doc doc-children">
9811
10646
 
9812
10647
 
9813
10648
 
@@ -9818,10 +10653,10 @@
9818
10653
 
9819
10654
 
9820
10655
 
9821
- </div>
9822
10656
 
9823
10657
  </div>
9824
10658
 
10659
+ </div>
9825
10660
 
9826
10661
  </div>
9827
10662
 
@@ -9830,24 +10665,23 @@
9830
10665
 
9831
10666
 
9832
10667
  <h2 id="nautobot.apps.forms.BootstrapMixin" class="doc doc-heading">
9833
- <code>nautobot.apps.forms.BootstrapMixin</code>
10668
+ <code>nautobot.apps.forms.BootstrapMixin</code>
9834
10669
 
9835
10670
 
9836
10671
  <a href="#nautobot.apps.forms.BootstrapMixin" class="headerlink" title="Permanent link">&para;</a></h2>
9837
10672
 
9838
10673
 
9839
- <div class="doc doc-contents ">
9840
- <p class="doc doc-class-bases">
9841
- Bases: <code><span title="django.forms.BaseForm">BaseForm</span></code></p>
10674
+ <div class="doc doc-contents ">
10675
+ <p class="doc doc-class-bases">
10676
+ Bases: <code><span title="django.forms.BaseForm">BaseForm</span></code></p>
10677
+
9842
10678
 
9843
-
9844
10679
  <p>Add the base Bootstrap CSS classes to form elements.</p>
9845
10680
 
9846
10681
 
9847
-
9848
10682
 
9849
- <div class="doc doc-children">
9850
10683
 
10684
+ <div class="doc doc-children">
9851
10685
 
9852
10686
 
9853
10687
 
@@ -9858,10 +10692,10 @@
9858
10692
 
9859
10693
 
9860
10694
 
9861
- </div>
9862
10695
 
9863
10696
  </div>
9864
10697
 
10698
+ </div>
9865
10699
 
9866
10700
  </div>
9867
10701
 
@@ -9870,26 +10704,25 @@
9870
10704
 
9871
10705
 
9872
10706
  <h2 id="nautobot.apps.forms.BulkEditForm" class="doc doc-heading">
9873
- <code>nautobot.apps.forms.BulkEditForm</code>
10707
+ <code>nautobot.apps.forms.BulkEditForm</code>
9874
10708
 
9875
10709
 
9876
10710
  <a href="#nautobot.apps.forms.BulkEditForm" class="headerlink" title="Permanent link">&para;</a></h2>
9877
10711
 
9878
10712
 
9879
- <div class="doc doc-contents ">
9880
- <p class="doc doc-class-bases">
9881
- Bases: <code><span title="django.forms.Form">Form</span></code></p>
10713
+ <div class="doc doc-contents ">
10714
+ <p class="doc doc-class-bases">
10715
+ Bases: <code><span title="django.forms.Form">Form</span></code></p>
10716
+
9882
10717
 
9883
-
9884
10718
  <p>Base form for editing multiple objects in bulk.</p>
9885
10719
  <p>Note that for models supporting custom fields and relationships, nautobot.extras.forms.NautobotBulkEditForm is
9886
10720
  a more powerful subclass and should be used instead of directly inheriting from this class.</p>
9887
10721
 
9888
10722
 
9889
-
9890
10723
 
9891
- <div class="doc doc-children">
9892
10724
 
10725
+ <div class="doc doc-children">
9893
10726
 
9894
10727
 
9895
10728
 
@@ -9900,10 +10733,10 @@ a more powerful subclass and should be used instead of directly inheriting from
9900
10733
 
9901
10734
 
9902
10735
 
9903
- </div>
9904
10736
 
9905
10737
  </div>
9906
10738
 
10739
+ </div>
9907
10740
 
9908
10741
  </div>
9909
10742
 
@@ -9912,24 +10745,23 @@ a more powerful subclass and should be used instead of directly inheriting from
9912
10745
 
9913
10746
 
9914
10747
  <h2 id="nautobot.apps.forms.BulkEditNullBooleanSelect" class="doc doc-heading">
9915
- <code>nautobot.apps.forms.BulkEditNullBooleanSelect</code>
10748
+ <code>nautobot.apps.forms.BulkEditNullBooleanSelect</code>
9916
10749
 
9917
10750
 
9918
10751
  <a href="#nautobot.apps.forms.BulkEditNullBooleanSelect" class="headerlink" title="Permanent link">&para;</a></h2>
9919
10752
 
9920
10753
 
9921
- <div class="doc doc-contents ">
9922
- <p class="doc doc-class-bases">
9923
- Bases: <code><span title="django.forms.NullBooleanSelect">NullBooleanSelect</span></code></p>
10754
+ <div class="doc doc-contents ">
10755
+ <p class="doc doc-class-bases">
10756
+ Bases: <code><span title="django.forms.NullBooleanSelect">NullBooleanSelect</span></code></p>
10757
+
9924
10758
 
9925
-
9926
10759
  <p>A Select widget for NullBooleanFields</p>
9927
10760
 
9928
10761
 
9929
-
9930
10762
 
9931
- <div class="doc doc-children">
9932
10763
 
10764
+ <div class="doc doc-children">
9933
10765
 
9934
10766
 
9935
10767
 
@@ -9940,10 +10772,10 @@ a more powerful subclass and should be used instead of directly inheriting from
9940
10772
 
9941
10773
 
9942
10774
 
9943
- </div>
9944
10775
 
9945
10776
  </div>
9946
10777
 
10778
+ </div>
9947
10779
 
9948
10780
  </div>
9949
10781
 
@@ -9952,24 +10784,23 @@ a more powerful subclass and should be used instead of directly inheriting from
9952
10784
 
9953
10785
 
9954
10786
  <h2 id="nautobot.apps.forms.BulkRenameForm" class="doc doc-heading">
9955
- <code>nautobot.apps.forms.BulkRenameForm</code>
10787
+ <code>nautobot.apps.forms.BulkRenameForm</code>
9956
10788
 
9957
10789
 
9958
10790
  <a href="#nautobot.apps.forms.BulkRenameForm" class="headerlink" title="Permanent link">&para;</a></h2>
9959
10791
 
9960
10792
 
9961
- <div class="doc doc-contents ">
9962
- <p class="doc doc-class-bases">
9963
- Bases: <code><span title="django.forms.Form">Form</span></code></p>
10793
+ <div class="doc doc-contents ">
10794
+ <p class="doc doc-class-bases">
10795
+ Bases: <code><span title="django.forms.Form">Form</span></code></p>
10796
+
9964
10797
 
9965
-
9966
10798
  <p>An extendable form to be used for renaming objects in bulk.</p>
9967
10799
 
9968
10800
 
9969
-
9970
10801
 
9971
- <div class="doc doc-children">
9972
10802
 
10803
+ <div class="doc doc-children">
9973
10804
 
9974
10805
 
9975
10806
 
@@ -9980,10 +10811,10 @@ a more powerful subclass and should be used instead of directly inheriting from
9980
10811
 
9981
10812
 
9982
10813
 
9983
- </div>
9984
10814
 
9985
10815
  </div>
9986
10816
 
10817
+ </div>
9987
10818
 
9988
10819
  </div>
9989
10820
 
@@ -9992,25 +10823,24 @@ a more powerful subclass and should be used instead of directly inheriting from
9992
10823
 
9993
10824
 
9994
10825
  <h2 id="nautobot.apps.forms.CSVChoiceField" class="doc doc-heading">
9995
- <code>nautobot.apps.forms.CSVChoiceField</code>
10826
+ <code>nautobot.apps.forms.CSVChoiceField</code>
9996
10827
 
9997
10828
 
9998
10829
  <a href="#nautobot.apps.forms.CSVChoiceField" class="headerlink" title="Permanent link">&para;</a></h2>
9999
10830
 
10000
10831
 
10001
- <div class="doc doc-contents ">
10002
- <p class="doc doc-class-bases">
10003
- Bases: <code><span title="django.forms.ChoiceField">ChoiceField</span></code></p>
10832
+ <div class="doc doc-contents ">
10833
+ <p class="doc doc-class-bases">
10834
+ Bases: <code><span title="django.forms.ChoiceField">ChoiceField</span></code></p>
10835
+
10004
10836
 
10005
-
10006
10837
  <p>Invert the provided set of choices to take the human-friendly label as input, and return the database value.</p>
10007
10838
  <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>
10008
10839
 
10009
10840
 
10010
-
10011
10841
 
10012
- <div class="doc doc-children">
10013
10842
 
10843
+ <div class="doc doc-children">
10014
10844
 
10015
10845
 
10016
10846
 
@@ -10021,10 +10851,10 @@ a more powerful subclass and should be used instead of directly inheriting from
10021
10851
 
10022
10852
 
10023
10853
 
10024
- </div>
10025
10854
 
10026
10855
  </div>
10027
10856
 
10857
+ </div>
10028
10858
 
10029
10859
  </div>
10030
10860
 
@@ -10033,25 +10863,24 @@ a more powerful subclass and should be used instead of directly inheriting from
10033
10863
 
10034
10864
 
10035
10865
  <h2 id="nautobot.apps.forms.CSVContentTypeField" class="doc doc-heading">
10036
- <code>nautobot.apps.forms.CSVContentTypeField</code>
10866
+ <code>nautobot.apps.forms.CSVContentTypeField</code>
10037
10867
 
10038
10868
 
10039
10869
  <a href="#nautobot.apps.forms.CSVContentTypeField" class="headerlink" title="Permanent link">&para;</a></h2>
10040
10870
 
10041
10871
 
10042
- <div class="doc doc-contents ">
10043
- <p class="doc doc-class-bases">
10044
- Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.forms.fields.CSVModelChoiceField" href="#nautobot.apps.forms.CSVModelChoiceField">CSVModelChoiceField</a></code></p>
10872
+ <div class="doc doc-contents ">
10873
+ <p class="doc doc-class-bases">
10874
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.forms.fields.CSVModelChoiceField" href="#nautobot.apps.forms.CSVModelChoiceField">CSVModelChoiceField</a></code></p>
10875
+
10045
10876
 
10046
-
10047
10877
  <p>Reference a ContentType in the form <code>{app_label}.{model}</code>.</p>
10048
10878
  <p>Note: class name is misleading; this field is also used in numerous FilterSets where it has nothing to do with CSV.</p>
10049
10879
 
10050
10880
 
10051
-
10052
10881
 
10053
- <div class="doc doc-children">
10054
10882
 
10883
+ <div class="doc doc-children">
10055
10884
 
10056
10885
 
10057
10886
 
@@ -10064,19 +10893,18 @@ a more powerful subclass and should be used instead of directly inheriting from
10064
10893
  <div class="doc doc-object doc-function">
10065
10894
 
10066
10895
 
10067
-
10068
10896
  <h3 id="nautobot.apps.forms.CSVContentTypeField.prepare_value" class="doc doc-heading">
10069
- <code class="highlight language-python"><span class="n">prepare_value</span><span class="p">(</span><span class="n">value</span><span class="p">)</span></code>
10897
+ <code class="highlight language-python"><span class="n">prepare_value</span><span class="p">(</span><span class="n">value</span><span class="p">)</span></code>
10070
10898
 
10071
10899
  <a href="#nautobot.apps.forms.CSVContentTypeField.prepare_value" class="headerlink" title="Permanent link">&para;</a></h3>
10072
10900
 
10073
10901
 
10074
- <div class="doc doc-contents ">
10075
-
10902
+ <div class="doc doc-contents ">
10903
+
10076
10904
  <p>Allow this field to support <code>{app_label}.{model}</code> style, null values, or PK-based lookups
10077
10905
  depending on how the field is used.</p>
10078
10906
 
10079
- </div>
10907
+ </div>
10080
10908
 
10081
10909
  </div>
10082
10910
 
@@ -10084,8 +10912,7 @@ depending on how the field is used.</p>
10084
10912
 
10085
10913
  </div>
10086
10914
 
10087
- </div>
10088
-
10915
+ </div>
10089
10916
 
10090
10917
  </div>
10091
10918
 
@@ -10094,57 +10921,55 @@ depending on how the field is used.</p>
10094
10921
 
10095
10922
 
10096
10923
  <h2 id="nautobot.apps.forms.CSVDataField" class="doc doc-heading">
10097
- <code>nautobot.apps.forms.CSVDataField</code>
10924
+ <code>nautobot.apps.forms.CSVDataField</code>
10098
10925
 
10099
10926
 
10100
10927
  <a href="#nautobot.apps.forms.CSVDataField" class="headerlink" title="Permanent link">&para;</a></h2>
10101
10928
 
10102
10929
 
10103
- <div class="doc doc-contents ">
10104
- <p class="doc doc-class-bases">
10105
- Bases: <code><span title="django.forms.CharField">CharField</span></code></p>
10930
+ <div class="doc doc-contents ">
10931
+ <p class="doc doc-class-bases">
10932
+ Bases: <code><span title="django.forms.CharField">CharField</span></code></p>
10933
+
10106
10934
 
10107
-
10108
10935
  <p>A CharField (rendered as a Textarea) which expects CSV-formatted data.</p>
10109
10936
  <p>Initial value is a list of headers corresponding to the required fields for the given serializer class.</p>
10110
10937
  <p>This no longer actually does any CSV parsing or validation on its own,
10111
10938
  as that is now handled by the NautobotCSVParser class and the REST API serializers.</p>
10112
10939
 
10113
10940
 
10114
-
10115
- <p><strong>Parameters:</strong></p>
10116
- <table>
10117
- <thead>
10118
- <tr>
10119
- <th>Name</th>
10120
- <th>Type</th>
10121
- <th>Description</th>
10122
- <th>Default</th>
10123
- </tr>
10124
- </thead>
10125
- <tbody>
10941
+ <p><span class="doc-section-title">Parameters:</span></p>
10942
+ <table>
10943
+ <thead>
10126
10944
  <tr>
10127
- <td><code>required_field_names</code></td>
10128
- <td>
10129
- <code>list[str]</code>
10130
- </td>
10131
- <td>
10132
- <div class="doc-md-description">
10133
- <p>List of field names representing required fields for this import.</p>
10134
- </div>
10135
- </td>
10136
- <td>
10137
- <code>&#39;&#39;</code>
10138
- </td>
10945
+ <th>Name</th>
10946
+ <th>Type</th>
10947
+ <th>Description</th>
10948
+ <th>Default</th>
10139
10949
  </tr>
10140
- </tbody>
10141
- </table>
10950
+ </thead>
10951
+ <tbody>
10952
+ <tr class="doc-section-item">
10953
+ <td><code>required_field_names</code></td>
10954
+ <td>
10955
+ <code>list[str]</code>
10956
+ </td>
10957
+ <td>
10958
+ <div class="doc-md-description">
10959
+ <p>List of field names representing required fields for this import.</p>
10960
+ </div>
10961
+ </td>
10962
+ <td>
10963
+ <code>&#39;&#39;</code>
10964
+ </td>
10965
+ </tr>
10966
+ </tbody>
10967
+ </table>
10142
10968
 
10143
10969
 
10144
-
10145
10970
 
10146
- <div class="doc doc-children">
10147
10971
 
10972
+ <div class="doc doc-children">
10148
10973
 
10149
10974
 
10150
10975
 
@@ -10155,10 +10980,10 @@ as that is now handled by the NautobotCSVParser class and the REST API serialize
10155
10980
 
10156
10981
 
10157
10982
 
10158
- </div>
10159
10983
 
10160
10984
  </div>
10161
10985
 
10986
+ </div>
10162
10987
 
10163
10988
  </div>
10164
10989
 
@@ -10167,26 +10992,25 @@ as that is now handled by the NautobotCSVParser class and the REST API serialize
10167
10992
 
10168
10993
 
10169
10994
  <h2 id="nautobot.apps.forms.CSVFileField" class="doc doc-heading">
10170
- <code>nautobot.apps.forms.CSVFileField</code>
10995
+ <code>nautobot.apps.forms.CSVFileField</code>
10171
10996
 
10172
10997
 
10173
10998
  <a href="#nautobot.apps.forms.CSVFileField" class="headerlink" title="Permanent link">&para;</a></h2>
10174
10999
 
10175
11000
 
10176
- <div class="doc doc-contents ">
10177
- <p class="doc doc-class-bases">
10178
- Bases: <code><span title="django.forms.FileField">FileField</span></code></p>
11001
+ <div class="doc doc-contents ">
11002
+ <p class="doc doc-class-bases">
11003
+ Bases: <code><span title="django.forms.FileField">FileField</span></code></p>
11004
+
10179
11005
 
10180
-
10181
11006
  <p>A FileField (rendered as a ClearableFileInput) which expects a file containing CSV-formatted data.</p>
10182
11007
  <p>This no longer actually does any CSV parsing or validation on its own,
10183
11008
  as that is now handled by the NautobotCSVParser class and the REST API serializers.</p>
10184
11009
 
10185
11010
 
10186
-
10187
11011
 
10188
- <div class="doc doc-children">
10189
11012
 
11013
+ <div class="doc doc-children">
10190
11014
 
10191
11015
 
10192
11016
 
@@ -10199,18 +11023,17 @@ as that is now handled by the NautobotCSVParser class and the REST API serialize
10199
11023
  <div class="doc doc-object doc-function">
10200
11024
 
10201
11025
 
10202
-
10203
11026
  <h3 id="nautobot.apps.forms.CSVFileField.to_python" class="doc doc-heading">
10204
- <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>
11027
+ <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>
10205
11028
 
10206
11029
  <a href="#nautobot.apps.forms.CSVFileField.to_python" class="headerlink" title="Permanent link">&para;</a></h3>
10207
11030
 
10208
11031
 
10209
- <div class="doc doc-contents ">
10210
-
11032
+ <div class="doc doc-contents ">
11033
+
10211
11034
  <p>For parity with CSVDataField, this returns the CSV text rather than an UploadedFile object.</p>
10212
11035
 
10213
- </div>
11036
+ </div>
10214
11037
 
10215
11038
  </div>
10216
11039
 
@@ -10218,8 +11041,7 @@ as that is now handled by the NautobotCSVParser class and the REST API serialize
10218
11041
 
10219
11042
  </div>
10220
11043
 
10221
- </div>
10222
-
11044
+ </div>
10223
11045
 
10224
11046
  </div>
10225
11047
 
@@ -10228,26 +11050,25 @@ as that is now handled by the NautobotCSVParser class and the REST API serialize
10228
11050
 
10229
11051
 
10230
11052
  <h2 id="nautobot.apps.forms.CSVModelChoiceField" class="doc doc-heading">
10231
- <code>nautobot.apps.forms.CSVModelChoiceField</code>
11053
+ <code>nautobot.apps.forms.CSVModelChoiceField</code>
10232
11054
 
10233
11055
 
10234
11056
  <a href="#nautobot.apps.forms.CSVModelChoiceField" class="headerlink" title="Permanent link">&para;</a></h2>
10235
11057
 
10236
11058
 
10237
- <div class="doc doc-contents ">
10238
- <p class="doc doc-class-bases">
10239
- Bases: <code><span title="django.forms.ModelChoiceField">ModelChoiceField</span></code></p>
11059
+ <div class="doc doc-contents ">
11060
+ <p class="doc doc-class-bases">
11061
+ Bases: <code><span title="django.forms.ModelChoiceField">ModelChoiceField</span></code></p>
11062
+
10240
11063
 
10241
-
10242
11064
  <p>Provides additional validation for model choices entered as CSV data.</p>
10243
11065
  <p>Note: class name is misleading; the subclass CSVContentTypeField (below) is also used in FilterSets, where it has
10244
11066
  nothing to do with CSV data.</p>
10245
11067
 
10246
11068
 
10247
-
10248
11069
 
10249
- <div class="doc doc-children">
10250
11070
 
11071
+ <div class="doc doc-children">
10251
11072
 
10252
11073
 
10253
11074
 
@@ -10258,10 +11079,10 @@ nothing to do with CSV data.</p>
10258
11079
 
10259
11080
 
10260
11081
 
10261
- </div>
10262
11082
 
10263
11083
  </div>
10264
11084
 
11085
+ </div>
10265
11086
 
10266
11087
  </div>
10267
11088
 
@@ -10270,26 +11091,25 @@ nothing to do with CSV data.</p>
10270
11091
 
10271
11092
 
10272
11093
  <h2 id="nautobot.apps.forms.CSVModelForm" class="doc doc-heading">
10273
- <code>nautobot.apps.forms.CSVModelForm</code>
11094
+ <code>nautobot.apps.forms.CSVModelForm</code>
10274
11095
 
10275
11096
 
10276
11097
  <a href="#nautobot.apps.forms.CSVModelForm" class="headerlink" title="Permanent link">&para;</a></h2>
10277
11098
 
10278
11099
 
10279
- <div class="doc doc-contents ">
10280
- <p class="doc doc-class-bases">
10281
- Bases: <code><span title="django.forms.ModelForm">ModelForm</span></code></p>
11100
+ <div class="doc doc-contents ">
11101
+ <p class="doc doc-class-bases">
11102
+ Bases: <code><span title="django.forms.ModelForm">ModelForm</span></code></p>
11103
+
10282
11104
 
10283
-
10284
11105
  <p>ModelForm used for the import of objects.</p>
10285
11106
  <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
10286
11107
  JSON/YAML imports of DeviceTypes and their component templates.</p>
10287
11108
 
10288
11109
 
10289
-
10290
11110
 
10291
- <div class="doc doc-children">
10292
11111
 
11112
+ <div class="doc doc-children">
10293
11113
 
10294
11114
 
10295
11115
 
@@ -10300,10 +11120,10 @@ JSON/YAML imports of DeviceTypes and their component templates.</p>
10300
11120
 
10301
11121
 
10302
11122
 
10303
- </div>
10304
11123
 
10305
11124
  </div>
10306
11125
 
11126
+ </div>
10307
11127
 
10308
11128
  </div>
10309
11129
 
@@ -10312,26 +11132,25 @@ JSON/YAML imports of DeviceTypes and their component templates.</p>
10312
11132
 
10313
11133
 
10314
11134
  <h2 id="nautobot.apps.forms.CSVMultipleChoiceField" class="doc doc-heading">
10315
- <code>nautobot.apps.forms.CSVMultipleChoiceField</code>
11135
+ <code>nautobot.apps.forms.CSVMultipleChoiceField</code>
10316
11136
 
10317
11137
 
10318
11138
  <a href="#nautobot.apps.forms.CSVMultipleChoiceField" class="headerlink" title="Permanent link">&para;</a></h2>
10319
11139
 
10320
11140
 
10321
- <div class="doc doc-contents ">
10322
- <p class="doc doc-class-bases">
10323
- Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.forms.fields.CSVChoiceField" href="#nautobot.apps.forms.CSVChoiceField">CSVChoiceField</a></code></p>
11141
+ <div class="doc doc-contents ">
11142
+ <p class="doc doc-class-bases">
11143
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.forms.fields.CSVChoiceField" href="#nautobot.apps.forms.CSVChoiceField">CSVChoiceField</a></code></p>
11144
+
10324
11145
 
10325
-
10326
11146
  <p>A version of CSVChoiceField that supports and emits a list of choice values.</p>
10327
11147
  <p>As with CSVChoiceField, the name is misleading, as this is no longer used for CSV imports, but is used for
10328
11148
  JSON/YAML import of DeviceTypes still.</p>
10329
11149
 
10330
11150
 
10331
-
10332
11151
 
10333
- <div class="doc doc-children">
10334
11152
 
11153
+ <div class="doc doc-children">
10335
11154
 
10336
11155
 
10337
11156
 
@@ -10344,37 +11163,34 @@ JSON/YAML import of DeviceTypes still.</p>
10344
11163
  <div class="doc doc-object doc-function">
10345
11164
 
10346
11165
 
10347
-
10348
11166
  <h3 id="nautobot.apps.forms.CSVMultipleChoiceField.to_python" class="doc doc-heading">
10349
- <code class="highlight language-python"><span class="n">to_python</span><span class="p">(</span><span class="n">value</span><span class="p">)</span></code>
11167
+ <code class="highlight language-python"><span class="n">to_python</span><span class="p">(</span><span class="n">value</span><span class="p">)</span></code>
10350
11168
 
10351
11169
  <a href="#nautobot.apps.forms.CSVMultipleChoiceField.to_python" class="headerlink" title="Permanent link">&para;</a></h3>
10352
11170
 
10353
11171
 
10354
- <div class="doc doc-contents ">
10355
-
11172
+ <div class="doc doc-contents ">
11173
+
10356
11174
  <p>Return a list of strings.</p>
10357
11175
 
10358
- </div>
11176
+ </div>
10359
11177
 
10360
11178
  </div>
10361
11179
 
10362
-
10363
11180
  <div class="doc doc-object doc-function">
10364
11181
 
10365
11182
 
10366
-
10367
11183
  <h3 id="nautobot.apps.forms.CSVMultipleChoiceField.validate" class="doc doc-heading">
10368
- <code class="highlight language-python"><span class="n">validate</span><span class="p">(</span><span class="n">value</span><span class="p">)</span></code>
11184
+ <code class="highlight language-python"><span class="n">validate</span><span class="p">(</span><span class="n">value</span><span class="p">)</span></code>
10369
11185
 
10370
11186
  <a href="#nautobot.apps.forms.CSVMultipleChoiceField.validate" class="headerlink" title="Permanent link">&para;</a></h3>
10371
11187
 
10372
11188
 
10373
- <div class="doc doc-contents ">
10374
-
11189
+ <div class="doc doc-contents ">
11190
+
10375
11191
  <p>Validate that each of the input values is in self.choices.</p>
10376
11192
 
10377
- </div>
11193
+ </div>
10378
11194
 
10379
11195
  </div>
10380
11196
 
@@ -10382,8 +11198,7 @@ JSON/YAML import of DeviceTypes still.</p>
10382
11198
 
10383
11199
  </div>
10384
11200
 
10385
- </div>
10386
-
11201
+ </div>
10387
11202
 
10388
11203
  </div>
10389
11204
 
@@ -10392,26 +11207,25 @@ JSON/YAML import of DeviceTypes still.</p>
10392
11207
 
10393
11208
 
10394
11209
  <h2 id="nautobot.apps.forms.CSVMultipleContentTypeField" class="doc doc-heading">
10395
- <code>nautobot.apps.forms.CSVMultipleContentTypeField</code>
11210
+ <code>nautobot.apps.forms.CSVMultipleContentTypeField</code>
10396
11211
 
10397
11212
 
10398
11213
  <a href="#nautobot.apps.forms.CSVMultipleContentTypeField" class="headerlink" title="Permanent link">&para;</a></h2>
10399
11214
 
10400
11215
 
10401
- <div class="doc doc-contents ">
10402
- <p class="doc doc-class-bases">
10403
- Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.forms.fields.MultipleContentTypeField" href="#nautobot.apps.forms.MultipleContentTypeField">MultipleContentTypeField</a></code></p>
11216
+ <div class="doc doc-contents ">
11217
+ <p class="doc doc-class-bases">
11218
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.forms.fields.MultipleContentTypeField" href="#nautobot.apps.forms.MultipleContentTypeField">MultipleContentTypeField</a></code></p>
11219
+
10404
11220
 
10405
-
10406
11221
  <p>Reference a list of <code>ContentType</code> objects in the form `{app_label}.{model}'.</p>
10407
11222
  <p>Note: This is unused in Nautobot core at this time, but some apps (data-validation-engine) use this for non-CSV
10408
11223
  purposes, similar to CSVContentTypeField above.</p>
10409
11224
 
10410
11225
 
10411
-
10412
11226
 
10413
- <div class="doc doc-children">
10414
11227
 
11228
+ <div class="doc doc-children">
10415
11229
 
10416
11230
 
10417
11231
 
@@ -10424,18 +11238,17 @@ purposes, similar to CSVContentTypeField above.</p>
10424
11238
  <div class="doc doc-object doc-function">
10425
11239
 
10426
11240
 
10427
-
10428
11241
  <h3 id="nautobot.apps.forms.CSVMultipleContentTypeField.prepare_value" class="doc doc-heading">
10429
- <code class="highlight language-python"><span class="n">prepare_value</span><span class="p">(</span><span class="n">value</span><span class="p">)</span></code>
11242
+ <code class="highlight language-python"><span class="n">prepare_value</span><span class="p">(</span><span class="n">value</span><span class="p">)</span></code>
10430
11243
 
10431
11244
  <a href="#nautobot.apps.forms.CSVMultipleContentTypeField.prepare_value" class="headerlink" title="Permanent link">&para;</a></h3>
10432
11245
 
10433
11246
 
10434
- <div class="doc doc-contents ">
10435
-
11247
+ <div class="doc doc-contents ">
11248
+
10436
11249
  <p>Parse a comma-separated string of model names into a list of PKs.</p>
10437
11250
 
10438
- </div>
11251
+ </div>
10439
11252
 
10440
11253
  </div>
10441
11254
 
@@ -10443,8 +11256,7 @@ purposes, similar to CSVContentTypeField above.</p>
10443
11256
 
10444
11257
  </div>
10445
11258
 
10446
- </div>
10447
-
11259
+ </div>
10448
11260
 
10449
11261
  </div>
10450
11262
 
@@ -10453,24 +11265,23 @@ purposes, similar to CSVContentTypeField above.</p>
10453
11265
 
10454
11266
 
10455
11267
  <h2 id="nautobot.apps.forms.ColorSelect" class="doc doc-heading">
10456
- <code>nautobot.apps.forms.ColorSelect</code>
11268
+ <code>nautobot.apps.forms.ColorSelect</code>
10457
11269
 
10458
11270
 
10459
11271
  <a href="#nautobot.apps.forms.ColorSelect" class="headerlink" title="Permanent link">&para;</a></h2>
10460
11272
 
10461
11273
 
10462
- <div class="doc doc-contents ">
10463
- <p class="doc doc-class-bases">
10464
- Bases: <code><span title="django.forms.Select">Select</span></code></p>
11274
+ <div class="doc doc-contents ">
11275
+ <p class="doc doc-class-bases">
11276
+ Bases: <code><span title="django.forms.Select">Select</span></code></p>
11277
+
10465
11278
 
10466
-
10467
11279
  <p>Extends the built-in Select widget to colorize each <option>.</p>
10468
11280
 
10469
11281
 
10470
-
10471
11282
 
10472
- <div class="doc doc-children">
10473
11283
 
11284
+ <div class="doc doc-children">
10474
11285
 
10475
11286
 
10476
11287
 
@@ -10481,10 +11292,10 @@ purposes, similar to CSVContentTypeField above.</p>
10481
11292
 
10482
11293
 
10483
11294
 
10484
- </div>
10485
11295
 
10486
11296
  </div>
10487
11297
 
11298
+ </div>
10488
11299
 
10489
11300
  </div>
10490
11301
 
@@ -10493,24 +11304,23 @@ purposes, similar to CSVContentTypeField above.</p>
10493
11304
 
10494
11305
 
10495
11306
  <h2 id="nautobot.apps.forms.CommentField" class="doc doc-heading">
10496
- <code>nautobot.apps.forms.CommentField</code>
11307
+ <code>nautobot.apps.forms.CommentField</code>
10497
11308
 
10498
11309
 
10499
11310
  <a href="#nautobot.apps.forms.CommentField" class="headerlink" title="Permanent link">&para;</a></h2>
10500
11311
 
10501
11312
 
10502
- <div class="doc doc-contents ">
10503
- <p class="doc doc-class-bases">
10504
- Bases: <code><span title="django.forms.CharField">CharField</span></code></p>
11313
+ <div class="doc doc-contents ">
11314
+ <p class="doc doc-class-bases">
11315
+ Bases: <code><span title="django.forms.CharField">CharField</span></code></p>
11316
+
10505
11317
 
10506
-
10507
11318
  <p>A textarea with support for Markdown rendering. Exists mostly just to add a standard help_text.</p>
10508
11319
 
10509
11320
 
10510
-
10511
11321
 
10512
- <div class="doc doc-children">
10513
11322
 
11323
+ <div class="doc doc-children">
10514
11324
 
10515
11325
 
10516
11326
 
@@ -10521,10 +11331,10 @@ purposes, similar to CSVContentTypeField above.</p>
10521
11331
 
10522
11332
 
10523
11333
 
10524
- </div>
10525
11334
 
10526
11335
  </div>
10527
11336
 
11337
+ </div>
10528
11338
 
10529
11339
  </div>
10530
11340
 
@@ -10533,21 +11343,21 @@ purposes, similar to CSVContentTypeField above.</p>
10533
11343
 
10534
11344
 
10535
11345
  <h2 id="nautobot.apps.forms.ConfirmationForm" class="doc doc-heading">
10536
- <code>nautobot.apps.forms.ConfirmationForm</code>
11346
+ <code>nautobot.apps.forms.ConfirmationForm</code>
10537
11347
 
10538
11348
 
10539
11349
  <a href="#nautobot.apps.forms.ConfirmationForm" class="headerlink" title="Permanent link">&para;</a></h2>
10540
11350
 
10541
11351
 
10542
- <div class="doc doc-contents ">
10543
- <p class="doc doc-class-bases">
10544
- 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>
11352
+ <div class="doc doc-contents ">
11353
+ <p class="doc doc-class-bases">
11354
+ 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>
11355
+
10545
11356
 
10546
-
10547
11357
  <p>A generic confirmation form. The form is not valid unless the confirm field is checked.</p>
10548
11358
 
10549
11359
 
10550
-
11360
+
10551
11361
 
10552
11362
  <div class="doc doc-children">
10553
11363
 
@@ -10563,8 +11373,46 @@ purposes, similar to CSVContentTypeField above.</p>
10563
11373
 
10564
11374
  </div>
10565
11375
 
11376
+ </div>
11377
+
11378
+ </div>
11379
+
11380
+ <div class="doc doc-object doc-class">
11381
+
11382
+
11383
+
11384
+ <h2 id="nautobot.apps.forms.ContactTeamModelFilterFormMixin" class="doc doc-heading">
11385
+ <code>nautobot.apps.forms.ContactTeamModelFilterFormMixin</code>
11386
+
11387
+
11388
+ <a href="#nautobot.apps.forms.ContactTeamModelFilterFormMixin" class="headerlink" title="Permanent link">&para;</a></h2>
11389
+
11390
+
11391
+ <div class="doc doc-contents ">
11392
+ <p class="doc doc-class-bases">
11393
+ Bases: <code><span title="django.forms.Form">Form</span></code></p>
11394
+
11395
+
11396
+ <p>Adds the <code>contacts</code> and <code>teams</code> form fields to a filter form.</p>
11397
+
11398
+
11399
+
11400
+
11401
+ <div class="doc doc-children">
11402
+
11403
+
11404
+
11405
+
11406
+
11407
+
11408
+
11409
+
11410
+
11411
+
11412
+
10566
11413
  </div>
10567
11414
 
11415
+ </div>
10568
11416
 
10569
11417
  </div>
10570
11418
 
@@ -10573,26 +11421,25 @@ purposes, similar to CSVContentTypeField above.</p>
10573
11421
 
10574
11422
 
10575
11423
  <h2 id="nautobot.apps.forms.ContentTypeSelect" class="doc doc-heading">
10576
- <code>nautobot.apps.forms.ContentTypeSelect</code>
11424
+ <code>nautobot.apps.forms.ContentTypeSelect</code>
10577
11425
 
10578
11426
 
10579
11427
  <a href="#nautobot.apps.forms.ContentTypeSelect" class="headerlink" title="Permanent link">&para;</a></h2>
10580
11428
 
10581
11429
 
10582
- <div class="doc doc-contents ">
10583
- <p class="doc doc-class-bases">
10584
- Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.forms.widgets.StaticSelect2" href="#nautobot.apps.forms.StaticSelect2">StaticSelect2</a></code></p>
11430
+ <div class="doc doc-contents ">
11431
+ <p class="doc doc-class-bases">
11432
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.forms.widgets.StaticSelect2" href="#nautobot.apps.forms.StaticSelect2">StaticSelect2</a></code></p>
11433
+
10585
11434
 
10586
-
10587
11435
  <p>Appends an <code>api-value</code> attribute equal to the slugified model name for each ContentType. For example:
10588
11436
  <option value="37" api-value="console-server-port">console server port</option>
10589
11437
  This attribute can be used to reference the relevant API endpoint for a particular ContentType.</p>
10590
11438
 
10591
11439
 
10592
-
10593
11440
 
10594
- <div class="doc doc-children">
10595
11441
 
11442
+ <div class="doc doc-children">
10596
11443
 
10597
11444
 
10598
11445
 
@@ -10603,10 +11450,10 @@ This attribute can be used to reference the relevant API endpoint for a particul
10603
11450
 
10604
11451
 
10605
11452
 
10606
- </div>
10607
11453
 
10608
11454
  </div>
10609
11455
 
11456
+ </div>
10610
11457
 
10611
11458
  </div>
10612
11459
 
@@ -10615,27 +11462,26 @@ This attribute can be used to reference the relevant API endpoint for a particul
10615
11462
 
10616
11463
 
10617
11464
  <h2 id="nautobot.apps.forms.CustomFieldModelCSVForm" class="doc doc-heading">
10618
- <code>nautobot.apps.forms.CustomFieldModelCSVForm</code>
11465
+ <code>nautobot.apps.forms.CustomFieldModelCSVForm</code>
10619
11466
 
10620
11467
 
10621
11468
  <a href="#nautobot.apps.forms.CustomFieldModelCSVForm" class="headerlink" title="Permanent link">&para;</a></h2>
10622
11469
 
10623
11470
 
10624
- <div class="doc doc-contents ">
10625
- <p class="doc doc-class-bases">
10626
- 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>
11471
+ <div class="doc doc-contents ">
11472
+ <p class="doc doc-class-bases">
11473
+ 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>
11474
+
10627
11475
 
10628
-
10629
11476
  <p>Base class for CSV/JSON/YAML import of models that support custom fields.</p>
10630
11477
  <p>TODO: The class name is a misnomer; as of 2.0 this class is <strong>not</strong> used for any CSV imports,
10631
11478
  as that's now handled by the REST API. However it is still used when importing component-templates as
10632
11479
  part of a JSON/YAML DeviceType import.</p>
10633
11480
 
10634
11481
 
10635
-
10636
11482
 
10637
- <div class="doc doc-children">
10638
11483
 
11484
+ <div class="doc doc-children">
10639
11485
 
10640
11486
 
10641
11487
 
@@ -10646,10 +11492,10 @@ part of a JSON/YAML DeviceType import.</p>
10646
11492
 
10647
11493
 
10648
11494
 
10649
- </div>
10650
11495
 
10651
11496
  </div>
10652
11497
 
11498
+ </div>
10653
11499
 
10654
11500
  </div>
10655
11501
 
@@ -10658,22 +11504,21 @@ part of a JSON/YAML DeviceType import.</p>
10658
11504
 
10659
11505
 
10660
11506
  <h2 id="nautobot.apps.forms.CustomFieldModelFormMixin" class="doc doc-heading">
10661
- <code>nautobot.apps.forms.CustomFieldModelFormMixin</code>
11507
+ <code>nautobot.apps.forms.CustomFieldModelFormMixin</code>
10662
11508
 
10663
11509
 
10664
11510
  <a href="#nautobot.apps.forms.CustomFieldModelFormMixin" class="headerlink" title="Permanent link">&para;</a></h2>
10665
11511
 
10666
11512
 
10667
- <div class="doc doc-contents ">
10668
- <p class="doc doc-class-bases">
10669
- Bases: <code><span title="django.forms.ModelForm">ModelForm</span></code></p>
11513
+ <div class="doc doc-contents ">
11514
+ <p class="doc doc-class-bases">
11515
+ Bases: <code><span title="django.forms.ModelForm">ModelForm</span></code></p>
10670
11516
 
10671
11517
 
10672
11518
 
10673
-
10674
11519
 
10675
- <div class="doc doc-children">
10676
11520
 
11521
+ <div class="doc doc-children">
10677
11522
 
10678
11523
 
10679
11524
 
@@ -10684,10 +11529,10 @@ part of a JSON/YAML DeviceType import.</p>
10684
11529
 
10685
11530
 
10686
11531
 
10687
- </div>
10688
11532
 
10689
11533
  </div>
10690
11534
 
11535
+ </div>
10691
11536
 
10692
11537
  </div>
10693
11538
 
@@ -10696,24 +11541,23 @@ part of a JSON/YAML DeviceType import.</p>
10696
11541
 
10697
11542
 
10698
11543
  <h2 id="nautobot.apps.forms.DatePicker" class="doc doc-heading">
10699
- <code>nautobot.apps.forms.DatePicker</code>
11544
+ <code>nautobot.apps.forms.DatePicker</code>
10700
11545
 
10701
11546
 
10702
11547
  <a href="#nautobot.apps.forms.DatePicker" class="headerlink" title="Permanent link">&para;</a></h2>
10703
11548
 
10704
11549
 
10705
- <div class="doc doc-contents ">
10706
- <p class="doc doc-class-bases">
10707
- Bases: <code><span title="django.forms.TextInput">TextInput</span></code></p>
11550
+ <div class="doc doc-contents ">
11551
+ <p class="doc doc-class-bases">
11552
+ Bases: <code><span title="django.forms.TextInput">TextInput</span></code></p>
11553
+
10708
11554
 
10709
-
10710
11555
  <p>Date picker using Flatpickr.</p>
10711
11556
 
10712
11557
 
10713
-
10714
11558
 
10715
- <div class="doc doc-children">
10716
11559
 
11560
+ <div class="doc doc-children">
10717
11561
 
10718
11562
 
10719
11563
 
@@ -10724,10 +11568,10 @@ part of a JSON/YAML DeviceType import.</p>
10724
11568
 
10725
11569
 
10726
11570
 
10727
- </div>
10728
11571
 
10729
11572
  </div>
10730
11573
 
11574
+ </div>
10731
11575
 
10732
11576
  </div>
10733
11577
 
@@ -10736,24 +11580,23 @@ part of a JSON/YAML DeviceType import.</p>
10736
11580
 
10737
11581
 
10738
11582
  <h2 id="nautobot.apps.forms.DateTimePicker" class="doc doc-heading">
10739
- <code>nautobot.apps.forms.DateTimePicker</code>
11583
+ <code>nautobot.apps.forms.DateTimePicker</code>
10740
11584
 
10741
11585
 
10742
11586
  <a href="#nautobot.apps.forms.DateTimePicker" class="headerlink" title="Permanent link">&para;</a></h2>
10743
11587
 
10744
11588
 
10745
- <div class="doc doc-contents ">
10746
- <p class="doc doc-class-bases">
10747
- Bases: <code><span title="django.forms.TextInput">TextInput</span></code></p>
11589
+ <div class="doc doc-contents ">
11590
+ <p class="doc doc-class-bases">
11591
+ Bases: <code><span title="django.forms.TextInput">TextInput</span></code></p>
11592
+
10748
11593
 
10749
-
10750
11594
  <p>DateTime picker using Flatpickr.</p>
10751
11595
 
10752
11596
 
10753
-
10754
11597
 
10755
- <div class="doc doc-children">
10756
11598
 
11599
+ <div class="doc doc-children">
10757
11600
 
10758
11601
 
10759
11602
 
@@ -10764,10 +11607,10 @@ part of a JSON/YAML DeviceType import.</p>
10764
11607
 
10765
11608
 
10766
11609
 
10767
- </div>
10768
11610
 
10769
11611
  </div>
10770
11612
 
11613
+ </div>
10771
11614
 
10772
11615
  </div>
10773
11616
 
@@ -10776,24 +11619,23 @@ part of a JSON/YAML DeviceType import.</p>
10776
11619
 
10777
11620
 
10778
11621
  <h2 id="nautobot.apps.forms.DynamicFilterForm" class="doc doc-heading">
10779
- <code>nautobot.apps.forms.DynamicFilterForm</code>
11622
+ <code>nautobot.apps.forms.DynamicFilterForm</code>
10780
11623
 
10781
11624
 
10782
11625
  <a href="#nautobot.apps.forms.DynamicFilterForm" class="headerlink" title="Permanent link">&para;</a></h2>
10783
11626
 
10784
11627
 
10785
- <div class="doc doc-contents ">
10786
- <p class="doc doc-class-bases">
10787
- 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>
11628
+ <div class="doc doc-contents ">
11629
+ <p class="doc doc-class-bases">
11630
+ 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>
11631
+
10788
11632
 
10789
-
10790
11633
  <p>Form for dynamically inputting filter values for an object list.</p>
10791
11634
 
10792
11635
 
10793
-
10794
11636
 
10795
- <div class="doc doc-children">
10796
11637
 
11638
+ <div class="doc doc-children">
10797
11639
 
10798
11640
 
10799
11641
 
@@ -10806,16 +11648,15 @@ part of a JSON/YAML DeviceType import.</p>
10806
11648
  <div class="doc doc-object doc-function">
10807
11649
 
10808
11650
 
10809
-
10810
11651
  <h3 id="nautobot.apps.forms.DynamicFilterForm.__init__" class="doc doc-heading">
10811
- <code class="highlight language-python"><span class="fm">__init__</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="n">filterset</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span></code>
11652
+ <code class="highlight language-python"><span class="fm">__init__</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="n">filterset</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span></code>
10812
11653
 
10813
11654
  <a href="#nautobot.apps.forms.DynamicFilterForm.__init__" class="headerlink" title="Permanent link">&para;</a></h3>
10814
11655
 
10815
11656
 
10816
- <div class="doc doc-contents ">
11657
+ <div class="doc doc-contents ">
10817
11658
 
10818
- </div>
11659
+ </div>
10819
11660
 
10820
11661
  </div>
10821
11662
 
@@ -10823,8 +11664,46 @@ part of a JSON/YAML DeviceType import.</p>
10823
11664
 
10824
11665
  </div>
10825
11666
 
11667
+ </div>
11668
+
11669
+ </div>
11670
+
11671
+ <div class="doc doc-object doc-class">
11672
+
11673
+
11674
+
11675
+ <h2 id="nautobot.apps.forms.DynamicGroupModelFormMixin" class="doc doc-heading">
11676
+ <code>nautobot.apps.forms.DynamicGroupModelFormMixin</code>
11677
+
11678
+
11679
+ <a href="#nautobot.apps.forms.DynamicGroupModelFormMixin" class="headerlink" title="Permanent link">&para;</a></h2>
11680
+
11681
+
11682
+ <div class="doc doc-contents ">
11683
+ <p class="doc doc-class-bases">
11684
+ Bases: <code><span title="django.forms.ModelForm">ModelForm</span></code></p>
11685
+
11686
+
11687
+ <p>Mixin to add <code>dynamic_groups</code> field to model create/edit forms where applicable.</p>
11688
+
11689
+
11690
+
11691
+
11692
+ <div class="doc doc-children">
11693
+
11694
+
11695
+
11696
+
11697
+
11698
+
11699
+
11700
+
11701
+
11702
+
11703
+
10826
11704
  </div>
10827
11705
 
11706
+ </div>
10828
11707
 
10829
11708
  </div>
10830
11709
 
@@ -10833,25 +11712,24 @@ part of a JSON/YAML DeviceType import.</p>
10833
11712
 
10834
11713
 
10835
11714
  <h2 id="nautobot.apps.forms.DynamicModelChoiceField" class="doc doc-heading">
10836
- <code>nautobot.apps.forms.DynamicModelChoiceField</code>
11715
+ <code>nautobot.apps.forms.DynamicModelChoiceField</code>
10837
11716
 
10838
11717
 
10839
11718
  <a href="#nautobot.apps.forms.DynamicModelChoiceField" class="headerlink" title="Permanent link">&para;</a></h2>
10840
11719
 
10841
11720
 
10842
- <div class="doc doc-contents ">
10843
- <p class="doc doc-class-bases">
10844
- 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>
11721
+ <div class="doc doc-contents ">
11722
+ <p class="doc doc-class-bases">
11723
+ 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>
11724
+
10845
11725
 
10846
-
10847
11726
  <p>Override get_bound_field() to avoid pre-populating field choices with a SQL query. The field will be
10848
11727
  rendered only with choices set via bound data. Choices are populated on-demand via the APISelect widget.</p>
10849
11728
 
10850
11729
 
10851
-
10852
11730
 
10853
- <div class="doc doc-children">
10854
11731
 
11732
+ <div class="doc doc-children">
10855
11733
 
10856
11734
 
10857
11735
 
@@ -10864,19 +11742,18 @@ rendered only with choices set via bound data. Choices are populated on-demand v
10864
11742
  <div class="doc doc-object doc-function">
10865
11743
 
10866
11744
 
10867
-
10868
11745
  <h3 id="nautobot.apps.forms.DynamicModelChoiceField.clean" class="doc doc-heading">
10869
- <code class="highlight language-python"><span class="n">clean</span><span class="p">(</span><span class="n">value</span><span class="p">)</span></code>
11746
+ <code class="highlight language-python"><span class="n">clean</span><span class="p">(</span><span class="n">value</span><span class="p">)</span></code>
10870
11747
 
10871
11748
  <a href="#nautobot.apps.forms.DynamicModelChoiceField.clean" class="headerlink" title="Permanent link">&para;</a></h3>
10872
11749
 
10873
11750
 
10874
- <div class="doc doc-contents ">
10875
-
11751
+ <div class="doc doc-contents ">
11752
+
10876
11753
  <p>When null option is enabled and "None" is sent as part of a form to be submitted, it is sent as the
10877
11754
  string 'null'. This will check for that condition and gracefully handle the conversion to a NoneType.</p>
10878
11755
 
10879
- </div>
11756
+ </div>
10880
11757
 
10881
11758
  </div>
10882
11759
 
@@ -10884,8 +11761,7 @@ string 'null'. This will check for that condition and gracefully handle the con
10884
11761
 
10885
11762
  </div>
10886
11763
 
10887
- </div>
10888
-
11764
+ </div>
10889
11765
 
10890
11766
  </div>
10891
11767
 
@@ -10894,15 +11770,15 @@ string 'null'. This will check for that condition and gracefully handle the con
10894
11770
 
10895
11771
 
10896
11772
  <h2 id="nautobot.apps.forms.DynamicModelChoiceMixin" class="doc doc-heading">
10897
- <code>nautobot.apps.forms.DynamicModelChoiceMixin</code>
11773
+ <code>nautobot.apps.forms.DynamicModelChoiceMixin</code>
10898
11774
 
10899
11775
 
10900
11776
  <a href="#nautobot.apps.forms.DynamicModelChoiceMixin" class="headerlink" title="Permanent link">&para;</a></h2>
10901
11777
 
10902
11778
 
10903
- <div class="doc doc-contents ">
11779
+ <div class="doc doc-contents ">
11780
+
10904
11781
 
10905
-
10906
11782
  <p>:param display_field: The name of the attribute of an API response object to display in the selection list
10907
11783
  :param query_params: A dictionary of additional key/value pairs to attach to the API request
10908
11784
  :param initial_params: A dictionary of child field references to use for selecting a parent field's initial value
@@ -10912,10 +11788,9 @@ string 'null'. This will check for that condition and gracefully handle the con
10912
11788
  :param depth: Nested serialization depth when making API requests (default: <code>0</code> or a flat representation)</p>
10913
11789
 
10914
11790
 
10915
-
10916
11791
 
10917
- <div class="doc doc-children">
10918
11792
 
11793
+ <div class="doc doc-children">
10919
11794
 
10920
11795
 
10921
11796
 
@@ -10928,21 +11803,20 @@ string 'null'. This will check for that condition and gracefully handle the con
10928
11803
  <div class="doc doc-object doc-function">
10929
11804
 
10930
11805
 
10931
-
10932
11806
  <h3 id="nautobot.apps.forms.DynamicModelChoiceMixin.prepare_value" class="doc doc-heading">
10933
- <code class="highlight language-python"><span class="n">prepare_value</span><span class="p">(</span><span class="n">value</span><span class="p">)</span></code>
11807
+ <code class="highlight language-python"><span class="n">prepare_value</span><span class="p">(</span><span class="n">value</span><span class="p">)</span></code>
10934
11808
 
10935
11809
  <a href="#nautobot.apps.forms.DynamicModelChoiceMixin.prepare_value" class="headerlink" title="Permanent link">&para;</a></h3>
10936
11810
 
10937
11811
 
10938
- <div class="doc doc-contents ">
10939
-
11812
+ <div class="doc doc-contents ">
11813
+
10940
11814
  <p>Augment the behavior of forms.ModelChoiceField.prepare_value().</p>
10941
11815
  <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
10942
11816
  from the given PK, so that the base class will get the appropriate field value rather than just keeping the PK,
10943
11817
  because the rendered form field needs this in order to correctly prepopulate a default selection.</p>
10944
11818
 
10945
- </div>
11819
+ </div>
10946
11820
 
10947
11821
  </div>
10948
11822
 
@@ -10950,8 +11824,7 @@ because the rendered form field needs this in order to correctly prepopulate a d
10950
11824
 
10951
11825
  </div>
10952
11826
 
10953
- </div>
10954
-
11827
+ </div>
10955
11828
 
10956
11829
  </div>
10957
11830
 
@@ -10960,24 +11833,23 @@ because the rendered form field needs this in order to correctly prepopulate a d
10960
11833
 
10961
11834
 
10962
11835
  <h2 id="nautobot.apps.forms.DynamicModelMultipleChoiceField" class="doc doc-heading">
10963
- <code>nautobot.apps.forms.DynamicModelMultipleChoiceField</code>
11836
+ <code>nautobot.apps.forms.DynamicModelMultipleChoiceField</code>
10964
11837
 
10965
11838
 
10966
11839
  <a href="#nautobot.apps.forms.DynamicModelMultipleChoiceField" class="headerlink" title="Permanent link">&para;</a></h2>
10967
11840
 
10968
11841
 
10969
- <div class="doc doc-contents ">
10970
- <p class="doc doc-class-bases">
10971
- 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>
11842
+ <div class="doc doc-contents ">
11843
+ <p class="doc doc-class-bases">
11844
+ 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>
11845
+
10972
11846
 
10973
-
10974
11847
  <p>A multiple-choice version of DynamicModelChoiceField.</p>
10975
11848
 
10976
11849
 
10977
-
10978
11850
 
10979
- <div class="doc doc-children">
10980
11851
 
11852
+ <div class="doc doc-children">
10981
11853
 
10982
11854
 
10983
11855
 
@@ -10988,10 +11860,10 @@ because the rendered form field needs this in order to correctly prepopulate a d
10988
11860
 
10989
11861
 
10990
11862
 
10991
- </div>
10992
11863
 
10993
11864
  </div>
10994
11865
 
11866
+ </div>
10995
11867
 
10996
11868
  </div>
10997
11869
 
@@ -11000,25 +11872,24 @@ because the rendered form field needs this in order to correctly prepopulate a d
11000
11872
 
11001
11873
 
11002
11874
  <h2 id="nautobot.apps.forms.ExpandableIPAddressField" class="doc doc-heading">
11003
- <code>nautobot.apps.forms.ExpandableIPAddressField</code>
11875
+ <code>nautobot.apps.forms.ExpandableIPAddressField</code>
11004
11876
 
11005
11877
 
11006
11878
  <a href="#nautobot.apps.forms.ExpandableIPAddressField" class="headerlink" title="Permanent link">&para;</a></h2>
11007
11879
 
11008
11880
 
11009
- <div class="doc doc-contents ">
11010
- <p class="doc doc-class-bases">
11011
- Bases: <code><span title="django.forms.CharField">CharField</span></code></p>
11881
+ <div class="doc doc-contents ">
11882
+ <p class="doc doc-class-bases">
11883
+ Bases: <code><span title="django.forms.CharField">CharField</span></code></p>
11884
+
11012
11885
 
11013
-
11014
11886
  <p>A field which allows for expansion of IP address ranges
11015
11887
  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>
11016
11888
 
11017
11889
 
11018
-
11019
11890
 
11020
- <div class="doc doc-children">
11021
11891
 
11892
+ <div class="doc doc-children">
11022
11893
 
11023
11894
 
11024
11895
 
@@ -11029,10 +11900,10 @@ because the rendered form field needs this in order to correctly prepopulate a d
11029
11900
 
11030
11901
 
11031
11902
 
11032
- </div>
11033
11903
 
11034
11904
  </div>
11035
11905
 
11906
+ </div>
11036
11907
 
11037
11908
  </div>
11038
11909
 
@@ -11041,25 +11912,24 @@ because the rendered form field needs this in order to correctly prepopulate a d
11041
11912
 
11042
11913
 
11043
11914
  <h2 id="nautobot.apps.forms.ExpandableNameField" class="doc doc-heading">
11044
- <code>nautobot.apps.forms.ExpandableNameField</code>
11915
+ <code>nautobot.apps.forms.ExpandableNameField</code>
11045
11916
 
11046
11917
 
11047
11918
  <a href="#nautobot.apps.forms.ExpandableNameField" class="headerlink" title="Permanent link">&para;</a></h2>
11048
11919
 
11049
11920
 
11050
- <div class="doc doc-contents ">
11051
- <p class="doc doc-class-bases">
11052
- Bases: <code><span title="django.forms.CharField">CharField</span></code></p>
11921
+ <div class="doc doc-contents ">
11922
+ <p class="doc doc-class-bases">
11923
+ Bases: <code><span title="django.forms.CharField">CharField</span></code></p>
11924
+
11053
11925
 
11054
-
11055
11926
  <p>A field which allows for numeric range expansion
11056
11927
  Example: 'Gi0/[1-3]' =&gt; ['Gi0/1', 'Gi0/2', 'Gi0/3']</p>
11057
11928
 
11058
11929
 
11059
-
11060
11930
 
11061
- <div class="doc doc-children">
11062
11931
 
11932
+ <div class="doc doc-children">
11063
11933
 
11064
11934
 
11065
11935
 
@@ -11070,10 +11940,10 @@ because the rendered form field needs this in order to correctly prepopulate a d
11070
11940
 
11071
11941
 
11072
11942
 
11073
- </div>
11074
11943
 
11075
11944
  </div>
11076
11945
 
11946
+ </div>
11077
11947
 
11078
11948
  </div>
11079
11949
 
@@ -11082,24 +11952,23 @@ because the rendered form field needs this in order to correctly prepopulate a d
11082
11952
 
11083
11953
 
11084
11954
  <h2 id="nautobot.apps.forms.ImportForm" class="doc doc-heading">
11085
- <code>nautobot.apps.forms.ImportForm</code>
11955
+ <code>nautobot.apps.forms.ImportForm</code>
11086
11956
 
11087
11957
 
11088
11958
  <a href="#nautobot.apps.forms.ImportForm" class="headerlink" title="Permanent link">&para;</a></h2>
11089
11959
 
11090
11960
 
11091
- <div class="doc doc-contents ">
11092
- <p class="doc doc-class-bases">
11093
- 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>
11961
+ <div class="doc doc-contents ">
11962
+ <p class="doc doc-class-bases">
11963
+ 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>
11964
+
11094
11965
 
11095
-
11096
11966
  <p>Generic form for creating an object from JSON/YAML data</p>
11097
11967
 
11098
11968
 
11099
-
11100
11969
 
11101
- <div class="doc doc-children">
11102
11970
 
11971
+ <div class="doc doc-children">
11103
11972
 
11104
11973
 
11105
11974
 
@@ -11110,10 +11979,10 @@ because the rendered form field needs this in order to correctly prepopulate a d
11110
11979
 
11111
11980
 
11112
11981
 
11113
- </div>
11114
11982
 
11115
11983
  </div>
11116
11984
 
11985
+ </div>
11117
11986
 
11118
11987
  </div>
11119
11988
 
@@ -11122,26 +11991,25 @@ because the rendered form field needs this in order to correctly prepopulate a d
11122
11991
 
11123
11992
 
11124
11993
  <h2 id="nautobot.apps.forms.JSONArrayFormField" class="doc doc-heading">
11125
- <code>nautobot.apps.forms.JSONArrayFormField</code>
11994
+ <code>nautobot.apps.forms.JSONArrayFormField</code>
11126
11995
 
11127
11996
 
11128
11997
  <a href="#nautobot.apps.forms.JSONArrayFormField" class="headerlink" title="Permanent link">&para;</a></h2>
11129
11998
 
11130
11999
 
11131
- <div class="doc doc-contents ">
11132
- <p class="doc doc-class-bases">
11133
- Bases: <code><span title="django.forms.JSONField">JSONField</span></code></p>
12000
+ <div class="doc doc-contents ">
12001
+ <p class="doc doc-class-bases">
12002
+ Bases: <code><span title="django.forms.JSONField">JSONField</span></code></p>
12003
+
11134
12004
 
11135
-
11136
12005
  <p>A FormField counterpart to JSONArrayField.
11137
12006
  Replicates ArrayFormField's base field validation: Field values are validated as JSON Arrays,
11138
12007
  and each Array element is validated by <code>base_field</code> validators.</p>
11139
12008
 
11140
12009
 
11141
-
11142
12010
 
11143
- <div class="doc doc-children">
11144
12011
 
12012
+ <div class="doc doc-children">
11145
12013
 
11146
12014
 
11147
12015
 
@@ -11154,116 +12022,105 @@ and each Array element is validated by <code>base_field</code> validators.</p>
11154
12022
  <div class="doc doc-object doc-function">
11155
12023
 
11156
12024
 
11157
-
11158
12025
  <h3 id="nautobot.apps.forms.JSONArrayFormField.clean" class="doc doc-heading">
11159
- <code class="highlight language-python"><span class="n">clean</span><span class="p">(</span><span class="n">value</span><span class="p">)</span></code>
12026
+ <code class="highlight language-python"><span class="n">clean</span><span class="p">(</span><span class="n">value</span><span class="p">)</span></code>
11160
12027
 
11161
12028
  <a href="#nautobot.apps.forms.JSONArrayFormField.clean" class="headerlink" title="Permanent link">&para;</a></h3>
11162
12029
 
11163
12030
 
11164
- <div class="doc doc-contents ">
11165
-
12031
+ <div class="doc doc-contents ">
12032
+
11166
12033
  <p>Validate <code>value</code> and return its "cleaned" value as an appropriate
11167
12034
  Python object. Raise ValidationError for any errors.</p>
11168
12035
 
11169
- </div>
12036
+ </div>
11170
12037
 
11171
12038
  </div>
11172
12039
 
11173
-
11174
12040
  <div class="doc doc-object doc-function">
11175
12041
 
11176
12042
 
11177
-
11178
12043
  <h3 id="nautobot.apps.forms.JSONArrayFormField.has_changed" class="doc doc-heading">
11179
- <code class="highlight language-python"><span class="n">has_changed</span><span class="p">(</span><span class="n">initial</span><span class="p">,</span> <span class="n">data</span><span class="p">)</span></code>
12044
+ <code class="highlight language-python"><span class="n">has_changed</span><span class="p">(</span><span class="n">initial</span><span class="p">,</span> <span class="n">data</span><span class="p">)</span></code>
11180
12045
 
11181
12046
  <a href="#nautobot.apps.forms.JSONArrayFormField.has_changed" class="headerlink" title="Permanent link">&para;</a></h3>
11182
12047
 
11183
12048
 
11184
- <div class="doc doc-contents ">
11185
-
12049
+ <div class="doc doc-contents ">
12050
+
11186
12051
  <p>Return True if <code>data</code> differs from <code>initial</code>.</p>
11187
12052
 
11188
- </div>
12053
+ </div>
11189
12054
 
11190
12055
  </div>
11191
12056
 
11192
-
11193
12057
  <div class="doc doc-object doc-function">
11194
12058
 
11195
12059
 
11196
-
11197
12060
  <h3 id="nautobot.apps.forms.JSONArrayFormField.prepare_value" class="doc doc-heading">
11198
- <code class="highlight language-python"><span class="n">prepare_value</span><span class="p">(</span><span class="n">value</span><span class="p">)</span></code>
12061
+ <code class="highlight language-python"><span class="n">prepare_value</span><span class="p">(</span><span class="n">value</span><span class="p">)</span></code>
11199
12062
 
11200
12063
  <a href="#nautobot.apps.forms.JSONArrayFormField.prepare_value" class="headerlink" title="Permanent link">&para;</a></h3>
11201
12064
 
11202
12065
 
11203
- <div class="doc doc-contents ">
11204
-
12066
+ <div class="doc doc-contents ">
12067
+
11205
12068
  <p>Return a string of this value.</p>
11206
12069
 
11207
- </div>
12070
+ </div>
11208
12071
 
11209
12072
  </div>
11210
12073
 
11211
-
11212
12074
  <div class="doc doc-object doc-function">
11213
12075
 
11214
12076
 
11215
-
11216
12077
  <h3 id="nautobot.apps.forms.JSONArrayFormField.run_validators" class="doc doc-heading">
11217
- <code class="highlight language-python"><span class="n">run_validators</span><span class="p">(</span><span class="n">value</span><span class="p">)</span></code>
12078
+ <code class="highlight language-python"><span class="n">run_validators</span><span class="p">(</span><span class="n">value</span><span class="p">)</span></code>
11218
12079
 
11219
12080
  <a href="#nautobot.apps.forms.JSONArrayFormField.run_validators" class="headerlink" title="Permanent link">&para;</a></h3>
11220
12081
 
11221
12082
 
11222
- <div class="doc doc-contents ">
11223
-
12083
+ <div class="doc doc-contents ">
12084
+
11224
12085
  <p>Runs all validators against <code>value</code> and raise ValidationError if necessary.
11225
12086
  Some validators can't be created at field initialization time.</p>
11226
12087
 
11227
- </div>
12088
+ </div>
11228
12089
 
11229
12090
  </div>
11230
12091
 
11231
-
11232
12092
  <div class="doc doc-object doc-function">
11233
12093
 
11234
12094
 
11235
-
11236
12095
  <h3 id="nautobot.apps.forms.JSONArrayFormField.to_python" class="doc doc-heading">
11237
- <code class="highlight language-python"><span class="n">to_python</span><span class="p">(</span><span class="n">value</span><span class="p">)</span></code>
12096
+ <code class="highlight language-python"><span class="n">to_python</span><span class="p">(</span><span class="n">value</span><span class="p">)</span></code>
11238
12097
 
11239
12098
  <a href="#nautobot.apps.forms.JSONArrayFormField.to_python" class="headerlink" title="Permanent link">&para;</a></h3>
11240
12099
 
11241
12100
 
11242
- <div class="doc doc-contents ">
11243
-
12101
+ <div class="doc doc-contents ">
12102
+
11244
12103
  <p>Convert <code>value</code> into JSON, raising django.core.exceptions.ValidationError
11245
12104
  if the data can't be converted. Return the converted value.</p>
11246
12105
 
11247
- </div>
12106
+ </div>
11248
12107
 
11249
12108
  </div>
11250
12109
 
11251
-
11252
12110
  <div class="doc doc-object doc-function">
11253
12111
 
11254
12112
 
11255
-
11256
12113
  <h3 id="nautobot.apps.forms.JSONArrayFormField.validate" class="doc doc-heading">
11257
- <code class="highlight language-python"><span class="n">validate</span><span class="p">(</span><span class="n">value</span><span class="p">)</span></code>
12114
+ <code class="highlight language-python"><span class="n">validate</span><span class="p">(</span><span class="n">value</span><span class="p">)</span></code>
11258
12115
 
11259
12116
  <a href="#nautobot.apps.forms.JSONArrayFormField.validate" class="headerlink" title="Permanent link">&para;</a></h3>
11260
12117
 
11261
12118
 
11262
- <div class="doc doc-contents ">
11263
-
12119
+ <div class="doc doc-contents ">
12120
+
11264
12121
  <p>Validate <code>value</code> and raise ValidationError if necessary.</p>
11265
12122
 
11266
- </div>
12123
+ </div>
11267
12124
 
11268
12125
  </div>
11269
12126
 
@@ -11271,8 +12128,7 @@ if the data can't be converted. Return the converted value.</p>
11271
12128
 
11272
12129
  </div>
11273
12130
 
11274
- </div>
11275
-
12131
+ </div>
11276
12132
 
11277
12133
  </div>
11278
12134
 
@@ -11281,24 +12137,23 @@ if the data can't be converted. Return the converted value.</p>
11281
12137
 
11282
12138
 
11283
12139
  <h2 id="nautobot.apps.forms.JSONField" class="doc doc-heading">
11284
- <code>nautobot.apps.forms.JSONField</code>
12140
+ <code>nautobot.apps.forms.JSONField</code>
11285
12141
 
11286
12142
 
11287
12143
  <a href="#nautobot.apps.forms.JSONField" class="headerlink" title="Permanent link">&para;</a></h2>
11288
12144
 
11289
12145
 
11290
- <div class="doc doc-contents ">
11291
- <p class="doc doc-class-bases">
11292
- Bases: <code><span title="django.forms.fields.JSONField">JSONField</span></code></p>
12146
+ <div class="doc doc-contents ">
12147
+ <p class="doc doc-class-bases">
12148
+ Bases: <code><span title="django.forms.fields.JSONField">JSONField</span></code></p>
12149
+
11293
12150
 
11294
-
11295
12151
  <p>Custom wrapper around Django's built-in JSONField to avoid presenting "null" as the default text.</p>
11296
12152
 
11297
12153
 
11298
-
11299
12154
 
11300
- <div class="doc doc-children">
11301
12155
 
12156
+ <div class="doc doc-children">
11302
12157
 
11303
12158
 
11304
12159
 
@@ -11309,10 +12164,10 @@ if the data can't be converted. Return the converted value.</p>
11309
12164
 
11310
12165
 
11311
12166
 
11312
- </div>
11313
12167
 
11314
12168
  </div>
11315
12169
 
12170
+ </div>
11316
12171
 
11317
12172
  </div>
11318
12173
 
@@ -11321,25 +12176,24 @@ if the data can't be converted. Return the converted value.</p>
11321
12176
 
11322
12177
 
11323
12178
  <h2 id="nautobot.apps.forms.LaxURLField" class="doc doc-heading">
11324
- <code>nautobot.apps.forms.LaxURLField</code>
12179
+ <code>nautobot.apps.forms.LaxURLField</code>
11325
12180
 
11326
12181
 
11327
12182
  <a href="#nautobot.apps.forms.LaxURLField" class="headerlink" title="Permanent link">&para;</a></h2>
11328
12183
 
11329
12184
 
11330
- <div class="doc doc-contents ">
11331
- <p class="doc doc-class-bases">
11332
- Bases: <code><span title="django.forms.URLField">URLField</span></code></p>
12185
+ <div class="doc doc-contents ">
12186
+ <p class="doc doc-class-bases">
12187
+ Bases: <code><span title="django.forms.URLField">URLField</span></code></p>
12188
+
11333
12189
 
11334
-
11335
12190
  <p>Modifies Django's built-in URLField to remove the requirement for fully-qualified domain names
11336
12191
  (e.g. http://myserver/ is valid)</p>
11337
12192
 
11338
12193
 
11339
-
11340
12194
 
11341
- <div class="doc doc-children">
11342
12195
 
12196
+ <div class="doc doc-children">
11343
12197
 
11344
12198
 
11345
12199
 
@@ -11350,10 +12204,10 @@ if the data can't be converted. Return the converted value.</p>
11350
12204
 
11351
12205
 
11352
12206
 
11353
- </div>
11354
12207
 
11355
12208
  </div>
11356
12209
 
12210
+ </div>
11357
12211
 
11358
12212
  </div>
11359
12213
 
@@ -11362,25 +12216,24 @@ if the data can't be converted. Return the converted value.</p>
11362
12216
 
11363
12217
 
11364
12218
  <h2 id="nautobot.apps.forms.MultiMatchModelMultipleChoiceField" class="doc doc-heading">
11365
- <code>nautobot.apps.forms.MultiMatchModelMultipleChoiceField</code>
12219
+ <code>nautobot.apps.forms.MultiMatchModelMultipleChoiceField</code>
11366
12220
 
11367
12221
 
11368
12222
  <a href="#nautobot.apps.forms.MultiMatchModelMultipleChoiceField" class="headerlink" title="Permanent link">&para;</a></h2>
11369
12223
 
11370
12224
 
11371
- <div class="doc doc-contents ">
11372
- <p class="doc doc-class-bases">
11373
- 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>
12225
+ <div class="doc doc-contents ">
12226
+ <p class="doc doc-class-bases">
12227
+ 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>
12228
+
11374
12229
 
11375
-
11376
12230
  <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>
11377
12231
  <p>Raises ValidationError if none of the fields match the requested value.</p>
11378
12232
 
11379
12233
 
11380
-
11381
12234
 
11382
- <div class="doc doc-children">
11383
12235
 
12236
+ <div class="doc doc-children">
11384
12237
 
11385
12238
 
11386
12239
 
@@ -11391,10 +12244,10 @@ if the data can't be converted. Return the converted value.</p>
11391
12244
 
11392
12245
 
11393
12246
 
11394
- </div>
11395
12247
 
11396
12248
  </div>
11397
12249
 
12250
+ </div>
11398
12251
 
11399
12252
  </div>
11400
12253
 
@@ -11403,25 +12256,24 @@ if the data can't be converted. Return the converted value.</p>
11403
12256
 
11404
12257
 
11405
12258
  <h2 id="nautobot.apps.forms.MultiValueCharField" class="doc doc-heading">
11406
- <code>nautobot.apps.forms.MultiValueCharField</code>
12259
+ <code>nautobot.apps.forms.MultiValueCharField</code>
11407
12260
 
11408
12261
 
11409
12262
  <a href="#nautobot.apps.forms.MultiValueCharField" class="headerlink" title="Permanent link">&para;</a></h2>
11410
12263
 
11411
12264
 
11412
- <div class="doc doc-contents ">
11413
- <p class="doc doc-class-bases">
11414
- Bases: <code><span title="django.forms.CharField">CharField</span></code></p>
12265
+ <div class="doc doc-contents ">
12266
+ <p class="doc doc-class-bases">
12267
+ Bases: <code><span title="django.forms.CharField">CharField</span></code></p>
12268
+
11415
12269
 
11416
-
11417
12270
  <p>CharField that takes multiple user character inputs and render them as tags in the form field.
11418
12271
  Press enter to complete an input.</p>
11419
12272
 
11420
12273
 
11421
-
11422
12274
 
11423
- <div class="doc doc-children">
11424
12275
 
12276
+ <div class="doc doc-children">
11425
12277
 
11426
12278
 
11427
12279
 
@@ -11432,10 +12284,10 @@ Press enter to complete an input.</p>
11432
12284
 
11433
12285
 
11434
12286
 
11435
- </div>
11436
12287
 
11437
12288
  </div>
11438
12289
 
12290
+ </div>
11439
12291
 
11440
12292
  </div>
11441
12293
 
@@ -11444,25 +12296,24 @@ Press enter to complete an input.</p>
11444
12296
 
11445
12297
 
11446
12298
  <h2 id="nautobot.apps.forms.MultiValueCharInput" class="doc doc-heading">
11447
- <code>nautobot.apps.forms.MultiValueCharInput</code>
12299
+ <code>nautobot.apps.forms.MultiValueCharInput</code>
11448
12300
 
11449
12301
 
11450
12302
  <a href="#nautobot.apps.forms.MultiValueCharInput" class="headerlink" title="Permanent link">&para;</a></h2>
11451
12303
 
11452
12304
 
11453
- <div class="doc doc-contents ">
11454
- <p class="doc doc-class-bases">
11455
- Bases: <code><span title="nautobot.core.forms.widgets.StaticSelect2Multiple">StaticSelect2Multiple</span></code></p>
12305
+ <div class="doc doc-contents ">
12306
+ <p class="doc doc-class-bases">
12307
+ Bases: <code><span title="nautobot.core.forms.widgets.StaticSelect2Multiple">StaticSelect2Multiple</span></code></p>
12308
+
11456
12309
 
11457
-
11458
12310
  <p>Manual text input with tagging enabled.
11459
12311
  Press enter to create a new entry.</p>
11460
12312
 
11461
12313
 
11462
-
11463
12314
 
11464
- <div class="doc doc-children">
11465
12315
 
12316
+ <div class="doc doc-children">
11466
12317
 
11467
12318
 
11468
12319
 
@@ -11473,10 +12324,10 @@ Press enter to create a new entry.</p>
11473
12324
 
11474
12325
 
11475
12326
 
11476
- </div>
11477
12327
 
11478
12328
  </div>
11479
12329
 
12330
+ </div>
11480
12331
 
11481
12332
  </div>
11482
12333
 
@@ -11485,26 +12336,25 @@ Press enter to create a new entry.</p>
11485
12336
 
11486
12337
 
11487
12338
  <h2 id="nautobot.apps.forms.MultipleContentTypeField" class="doc doc-heading">
11488
- <code>nautobot.apps.forms.MultipleContentTypeField</code>
12339
+ <code>nautobot.apps.forms.MultipleContentTypeField</code>
11489
12340
 
11490
12341
 
11491
12342
  <a href="#nautobot.apps.forms.MultipleContentTypeField" class="headerlink" title="Permanent link">&para;</a></h2>
11492
12343
 
11493
12344
 
11494
- <div class="doc doc-contents ">
11495
- <p class="doc doc-class-bases">
11496
- Bases: <code><span title="django.forms.ModelMultipleChoiceField">ModelMultipleChoiceField</span></code></p>
12345
+ <div class="doc doc-contents ">
12346
+ <p class="doc doc-class-bases">
12347
+ Bases: <code><span title="django.forms.ModelMultipleChoiceField">ModelMultipleChoiceField</span></code></p>
12348
+
11497
12349
 
11498
-
11499
12350
  <p>Field for choosing any number of <code>ContentType</code> objects.</p>
11500
12351
  <p>Optionally can restrict the available ContentTypes to those supporting a particular feature only.
11501
12352
  Optionally can pass the selection through as a list of <code>{app_label}.{model}</code> strings instead of PK values.</p>
11502
12353
 
11503
12354
 
11504
-
11505
12355
 
11506
- <div class="doc doc-children">
11507
12356
 
12357
+ <div class="doc doc-children">
11508
12358
 
11509
12359
 
11510
12360
 
@@ -11517,62 +12367,60 @@ Optionally can pass the selection through as a list of <code>{app_label}.{model}
11517
12367
  <div class="doc doc-object doc-function">
11518
12368
 
11519
12369
 
11520
-
11521
12370
  <h3 id="nautobot.apps.forms.MultipleContentTypeField.__init__" class="doc doc-heading">
11522
- <code class="highlight language-python"><span class="fm">__init__</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="n">feature</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">choices_as_strings</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span></code>
12371
+ <code class="highlight language-python"><span class="fm">__init__</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="n">feature</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">choices_as_strings</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span></code>
11523
12372
 
11524
12373
  <a href="#nautobot.apps.forms.MultipleContentTypeField.__init__" class="headerlink" title="Permanent link">&para;</a></h3>
11525
12374
 
11526
12375
 
11527
- <div class="doc doc-contents ">
11528
-
11529
- <p>Construct a MultipleContentTypeField.</p>
12376
+ <div class="doc doc-contents ">
11530
12377
 
12378
+ <p>Construct a MultipleContentTypeField.</p>
11531
12379
 
11532
12380
 
11533
- <p><strong>Parameters:</strong></p>
11534
- <table>
11535
- <thead>
11536
- <tr>
11537
- <th>Name</th>
11538
- <th>Type</th>
11539
- <th>Description</th>
11540
- <th>Default</th>
11541
- </tr>
11542
- </thead>
11543
- <tbody>
11544
- <tr>
11545
- <td><code>feature</code></td>
11546
- <td>
11547
- <code>str</code>
11548
- </td>
11549
- <td>
11550
- <div class="doc-md-description">
11551
- <p>Feature name to use in constructing a FeatureQuery to restrict the available ContentTypes.</p>
11552
- </div>
11553
- </td>
11554
- <td>
11555
- <code>None</code>
11556
- </td>
11557
- </tr>
12381
+ <p><span class="doc-section-title">Parameters:</span></p>
12382
+ <table>
12383
+ <thead>
11558
12384
  <tr>
11559
- <td><code>choices_as_strings</code></td>
11560
- <td>
11561
- <code>bool</code>
11562
- </td>
11563
- <td>
11564
- <div class="doc-md-description">
11565
- <p>If True, render selection as a list of <code>"{app_label}.{model}"</code> strings.</p>
11566
- </div>
11567
- </td>
11568
- <td>
11569
- <code>False</code>
11570
- </td>
12385
+ <th>Name</th>
12386
+ <th>Type</th>
12387
+ <th>Description</th>
12388
+ <th>Default</th>
11571
12389
  </tr>
11572
- </tbody>
11573
- </table>
12390
+ </thead>
12391
+ <tbody>
12392
+ <tr class="doc-section-item">
12393
+ <td><code>feature</code></td>
12394
+ <td>
12395
+ <code>str</code>
12396
+ </td>
12397
+ <td>
12398
+ <div class="doc-md-description">
12399
+ <p>Feature name to use in constructing a FeatureQuery to restrict the available ContentTypes.</p>
12400
+ </div>
12401
+ </td>
12402
+ <td>
12403
+ <code>None</code>
12404
+ </td>
12405
+ </tr>
12406
+ <tr class="doc-section-item">
12407
+ <td><code>choices_as_strings</code></td>
12408
+ <td>
12409
+ <code>bool</code>
12410
+ </td>
12411
+ <td>
12412
+ <div class="doc-md-description">
12413
+ <p>If True, render selection as a list of <code>"{app_label}.{model}"</code> strings.</p>
12414
+ </div>
12415
+ </td>
12416
+ <td>
12417
+ <code>False</code>
12418
+ </td>
12419
+ </tr>
12420
+ </tbody>
12421
+ </table>
11574
12422
 
11575
- </div>
12423
+ </div>
11576
12424
 
11577
12425
  </div>
11578
12426
 
@@ -11580,8 +12428,7 @@ Optionally can pass the selection through as a list of <code>{app_label}.{model}
11580
12428
 
11581
12429
  </div>
11582
12430
 
11583
- </div>
11584
-
12431
+ </div>
11585
12432
 
11586
12433
  </div>
11587
12434
 
@@ -11590,22 +12437,21 @@ Optionally can pass the selection through as a list of <code>{app_label}.{model}
11590
12437
 
11591
12438
 
11592
12439
  <h2 id="nautobot.apps.forms.NautobotBulkEditForm" class="doc doc-heading">
11593
- <code>nautobot.apps.forms.NautobotBulkEditForm</code>
12440
+ <code>nautobot.apps.forms.NautobotBulkEditForm</code>
11594
12441
 
11595
12442
 
11596
12443
  <a href="#nautobot.apps.forms.NautobotBulkEditForm" class="headerlink" title="Permanent link">&para;</a></h2>
11597
12444
 
11598
12445
 
11599
- <div class="doc doc-contents ">
11600
- <p class="doc doc-class-bases">
11601
- 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.RelationshipModelBulkEditFormMixin" href="#nautobot.apps.forms.RelationshipModelBulkEditFormMixin">RelationshipModelBulkEditFormMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.extras.forms.mixins.NoteModelBulkEditFormMixin" href="#nautobot.apps.forms.NoteModelBulkEditFormMixin">NoteModelBulkEditFormMixin</a></code></p>
12446
+ <div class="doc doc-contents ">
12447
+ <p class="doc doc-class-bases">
12448
+ 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.RelationshipModelBulkEditFormMixin" href="#nautobot.apps.forms.RelationshipModelBulkEditFormMixin">RelationshipModelBulkEditFormMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.extras.forms.mixins.NoteModelBulkEditFormMixin" href="#nautobot.apps.forms.NoteModelBulkEditFormMixin">NoteModelBulkEditFormMixin</a></code></p>
11602
12449
 
11603
-
11604
- <p>Base class for bulk-edit forms for models that support relationships, custom fields and notes.</p>
11605
12450
 
12451
+ <p>Base class for bulk-edit forms for models that support relationships, custom fields and notes.</p>
11606
12452
 
11607
- </div>
11608
12453
 
12454
+ </div>
11609
12455
 
11610
12456
  </div>
11611
12457
 
@@ -11614,24 +12460,23 @@ Optionally can pass the selection through as a list of <code>{app_label}.{model}
11614
12460
 
11615
12461
 
11616
12462
  <h2 id="nautobot.apps.forms.NautobotFilterForm" class="doc doc-heading">
11617
- <code>nautobot.apps.forms.NautobotFilterForm</code>
12463
+ <code>nautobot.apps.forms.NautobotFilterForm</code>
11618
12464
 
11619
12465
 
11620
12466
  <a href="#nautobot.apps.forms.NautobotFilterForm" class="headerlink" title="Permanent link">&para;</a></h2>
11621
12467
 
11622
12468
 
11623
- <div class="doc doc-contents ">
11624
- <p class="doc doc-class-bases">
11625
- 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.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>
12469
+ <div class="doc doc-contents ">
12470
+ <p class="doc doc-class-bases">
12471
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.extras.forms.mixins.ContactTeamModelFilterFormMixin" href="#nautobot.apps.forms.ContactTeamModelFilterFormMixin">ContactTeamModelFilterFormMixin</a></code>, <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.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>
11626
12472
 
11627
-
11628
- <p>This class exists to combine common functionality and is used to inherit from throughout the
11629
- codebase where all three of BootstrapMixin, CustomFieldModelFilterFormMixin and RelationshipModelFilterFormMixin are
11630
- needed.</p>
11631
12473
 
12474
+ <p>This class exists to combine common functionality and is used to inherit from throughout the
12475
+ codebase where all of ContactTeamModelFilterFormMixin, CustomFieldModelFilterFormMixin, and
12476
+ RelationshipModelFilterFormMixin are needed.</p>
11632
12477
 
11633
- </div>
11634
12478
 
12479
+ </div>
11635
12480
 
11636
12481
  </div>
11637
12482
 
@@ -11640,24 +12485,23 @@ needed.</p>
11640
12485
 
11641
12486
 
11642
12487
  <h2 id="nautobot.apps.forms.NautobotModelForm" class="doc doc-heading">
11643
- <code>nautobot.apps.forms.NautobotModelForm</code>
12488
+ <code>nautobot.apps.forms.NautobotModelForm</code>
11644
12489
 
11645
12490
 
11646
12491
  <a href="#nautobot.apps.forms.NautobotModelForm" class="headerlink" title="Permanent link">&para;</a></h2>
11647
12492
 
11648
12493
 
11649
- <div class="doc doc-contents ">
11650
- <p class="doc doc-class-bases">
11651
- 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.RelationshipModelFormMixin" href="#nautobot.apps.forms.RelationshipModelFormMixin">RelationshipModelFormMixin</a></code>, <code><span title="nautobot.extras.forms.mixins.NoteModelFormMixin">NoteModelFormMixin</span></code></p>
12494
+ <div class="doc doc-contents ">
12495
+ <p class="doc doc-class-bases">
12496
+ Bases: <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>, <code><a class="autorefs autorefs-internal" title="nautobot.core.forms.BootstrapMixin" href="#nautobot.apps.forms.BootstrapMixin">BootstrapMixin</a></code></p>
12497
+
11652
12498
 
11653
-
11654
12499
  <p>This class exists to combine common functionality and is used to inherit from throughout the
11655
12500
  codebase where all of BootstrapMixin, CustomFieldModelFormMixin, RelationshipModelFormMixin, and
11656
12501
  NoteModelFormMixin are needed.</p>
11657
12502
 
11658
12503
 
11659
- </div>
11660
-
12504
+ </div>
11661
12505
 
11662
12506
  </div>
11663
12507
 
@@ -11666,24 +12510,23 @@ NoteModelFormMixin are needed.</p>
11666
12510
 
11667
12511
 
11668
12512
  <h2 id="nautobot.apps.forms.NoteFormBase" class="doc doc-heading">
11669
- <code>nautobot.apps.forms.NoteFormBase</code>
12513
+ <code>nautobot.apps.forms.NoteFormBase</code>
11670
12514
 
11671
12515
 
11672
12516
  <a href="#nautobot.apps.forms.NoteFormBase" class="headerlink" title="Permanent link">&para;</a></h2>
11673
12517
 
11674
12518
 
11675
- <div class="doc doc-contents ">
11676
- <p class="doc doc-class-bases">
11677
- Bases: <code><span title="django.forms.Form">Form</span></code></p>
12519
+ <div class="doc doc-contents ">
12520
+ <p class="doc doc-class-bases">
12521
+ Bases: <code><span title="django.forms.Form">Form</span></code></p>
12522
+
11678
12523
 
11679
-
11680
12524
  <p>Base for the NoteModelFormMixin and NoteModelBulkEditFormMixin.</p>
11681
12525
 
11682
12526
 
11683
-
11684
12527
 
11685
- <div class="doc doc-children">
11686
12528
 
12529
+ <div class="doc doc-children">
11687
12530
 
11688
12531
 
11689
12532
 
@@ -11694,10 +12537,10 @@ NoteModelFormMixin are needed.</p>
11694
12537
 
11695
12538
 
11696
12539
 
11697
- </div>
11698
12540
 
11699
12541
  </div>
11700
12542
 
12543
+ </div>
11701
12544
 
11702
12545
  </div>
11703
12546
 
@@ -11706,24 +12549,23 @@ NoteModelFormMixin are needed.</p>
11706
12549
 
11707
12550
 
11708
12551
  <h2 id="nautobot.apps.forms.NoteModelBulkEditFormMixin" class="doc doc-heading">
11709
- <code>nautobot.apps.forms.NoteModelBulkEditFormMixin</code>
12552
+ <code>nautobot.apps.forms.NoteModelBulkEditFormMixin</code>
11710
12553
 
11711
12554
 
11712
12555
  <a href="#nautobot.apps.forms.NoteModelBulkEditFormMixin" class="headerlink" title="Permanent link">&para;</a></h2>
11713
12556
 
11714
12557
 
11715
- <div class="doc doc-contents ">
11716
- <p class="doc doc-class-bases">
11717
- 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>
12558
+ <div class="doc doc-contents ">
12559
+ <p class="doc doc-class-bases">
12560
+ 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>
12561
+
11718
12562
 
11719
-
11720
12563
  <p>Bulk-edit form mixin for models that support Notes.</p>
11721
12564
 
11722
12565
 
11723
-
11724
12566
 
11725
- <div class="doc doc-children">
11726
12567
 
12568
+ <div class="doc doc-children">
11727
12569
 
11728
12570
 
11729
12571
 
@@ -11734,10 +12576,10 @@ NoteModelFormMixin are needed.</p>
11734
12576
 
11735
12577
 
11736
12578
 
11737
- </div>
11738
12579
 
11739
12580
  </div>
11740
12581
 
12582
+ </div>
11741
12583
 
11742
12584
  </div>
11743
12585
 
@@ -11746,24 +12588,23 @@ NoteModelFormMixin are needed.</p>
11746
12588
 
11747
12589
 
11748
12590
  <h2 id="nautobot.apps.forms.NumericArrayField" class="doc doc-heading">
11749
- <code>nautobot.apps.forms.NumericArrayField</code>
12591
+ <code>nautobot.apps.forms.NumericArrayField</code>
11750
12592
 
11751
12593
 
11752
12594
  <a href="#nautobot.apps.forms.NumericArrayField" class="headerlink" title="Permanent link">&para;</a></h2>
11753
12595
 
11754
12596
 
11755
- <div class="doc doc-contents ">
11756
- <p class="doc doc-class-bases">
11757
- Bases: <code><span title="django.contrib.postgres.forms.SimpleArrayField">SimpleArrayField</span></code></p>
12597
+ <div class="doc doc-contents ">
12598
+ <p class="doc doc-class-bases">
12599
+ Bases: <code><span title="django.contrib.postgres.forms.SimpleArrayField">SimpleArrayField</span></code></p>
12600
+
11758
12601
 
11759
-
11760
12602
  <p>Basic array field that takes comma-separated or hyphenated ranges.</p>
11761
12603
 
11762
12604
 
11763
-
11764
12605
 
11765
- <div class="doc doc-children">
11766
12606
 
12607
+ <div class="doc doc-children">
11767
12608
 
11768
12609
 
11769
12610
 
@@ -11774,10 +12615,10 @@ NoteModelFormMixin are needed.</p>
11774
12615
 
11775
12616
 
11776
12617
 
11777
- </div>
11778
12618
 
11779
12619
  </div>
11780
12620
 
12621
+ </div>
11781
12622
 
11782
12623
  </div>
11783
12624
 
@@ -11786,24 +12627,23 @@ NoteModelFormMixin are needed.</p>
11786
12627
 
11787
12628
 
11788
12629
  <h2 id="nautobot.apps.forms.PrefixFieldMixin" class="doc doc-heading">
11789
- <code>nautobot.apps.forms.PrefixFieldMixin</code>
12630
+ <code>nautobot.apps.forms.PrefixFieldMixin</code>
11790
12631
 
11791
12632
 
11792
12633
  <a href="#nautobot.apps.forms.PrefixFieldMixin" class="headerlink" title="Permanent link">&para;</a></h2>
11793
12634
 
11794
12635
 
11795
- <div class="doc doc-contents ">
11796
- <p class="doc doc-class-bases">
11797
- Bases: <code><span title="django.forms.ModelForm">ModelForm</span></code></p>
12636
+ <div class="doc doc-contents ">
12637
+ <p class="doc doc-class-bases">
12638
+ Bases: <code><span title="django.forms.ModelForm">ModelForm</span></code></p>
12639
+
11798
12640
 
11799
-
11800
12641
  <p>ModelForm mixin for IPNetwork based models.</p>
11801
12642
 
11802
12643
 
11803
-
11804
12644
 
11805
- <div class="doc doc-children">
11806
12645
 
12646
+ <div class="doc doc-children">
11807
12647
 
11808
12648
 
11809
12649
 
@@ -11814,10 +12654,10 @@ NoteModelFormMixin are needed.</p>
11814
12654
 
11815
12655
 
11816
12656
 
11817
- </div>
11818
12657
 
11819
12658
  </div>
11820
12659
 
12660
+ </div>
11821
12661
 
11822
12662
  </div>
11823
12663
 
@@ -11826,24 +12666,23 @@ NoteModelFormMixin are needed.</p>
11826
12666
 
11827
12667
 
11828
12668
  <h2 id="nautobot.apps.forms.RelationshipModelBulkEditFormMixin" class="doc doc-heading">
11829
- <code>nautobot.apps.forms.RelationshipModelBulkEditFormMixin</code>
12669
+ <code>nautobot.apps.forms.RelationshipModelBulkEditFormMixin</code>
11830
12670
 
11831
12671
 
11832
12672
  <a href="#nautobot.apps.forms.RelationshipModelBulkEditFormMixin" class="headerlink" title="Permanent link">&para;</a></h2>
11833
12673
 
11834
12674
 
11835
- <div class="doc doc-contents ">
11836
- <p class="doc doc-class-bases">
11837
- Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.forms.BulkEditForm" href="#nautobot.apps.forms.BulkEditForm">BulkEditForm</a></code></p>
12675
+ <div class="doc doc-contents ">
12676
+ <p class="doc doc-class-bases">
12677
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.forms.BulkEditForm" href="#nautobot.apps.forms.BulkEditForm">BulkEditForm</a></code></p>
12678
+
11838
12679
 
11839
-
11840
12680
  <p>Bulk-edit form mixin for models that support Relationships.</p>
11841
12681
 
11842
12682
 
11843
-
11844
12683
 
11845
- <div class="doc doc-children">
11846
12684
 
12685
+ <div class="doc doc-children">
11847
12686
 
11848
12687
 
11849
12688
 
@@ -11856,18 +12695,17 @@ NoteModelFormMixin are needed.</p>
11856
12695
  <div class="doc doc-object doc-function">
11857
12696
 
11858
12697
 
11859
-
11860
12698
  <h3 id="nautobot.apps.forms.RelationshipModelBulkEditFormMixin.save_relationships" class="doc doc-heading">
11861
- <code class="highlight language-python"><span class="n">save_relationships</span><span class="p">(</span><span class="o">*</span><span class="p">,</span> <span class="n">instance</span><span class="p">,</span> <span class="n">nullified_fields</span><span class="p">)</span></code>
12699
+ <code class="highlight language-python"><span class="n">save_relationships</span><span class="p">(</span><span class="o">*</span><span class="p">,</span> <span class="n">instance</span><span class="p">,</span> <span class="n">nullified_fields</span><span class="p">)</span></code>
11862
12700
 
11863
12701
  <a href="#nautobot.apps.forms.RelationshipModelBulkEditFormMixin.save_relationships" class="headerlink" title="Permanent link">&para;</a></h3>
11864
12702
 
11865
12703
 
11866
- <div class="doc doc-contents ">
11867
-
12704
+ <div class="doc doc-contents ">
12705
+
11868
12706
  <p>Helper method to be called from BulkEditView.post().</p>
11869
12707
 
11870
- </div>
12708
+ </div>
11871
12709
 
11872
12710
  </div>
11873
12711
 
@@ -11875,8 +12713,7 @@ NoteModelFormMixin are needed.</p>
11875
12713
 
11876
12714
  </div>
11877
12715
 
11878
- </div>
11879
-
12716
+ </div>
11880
12717
 
11881
12718
  </div>
11882
12719
 
@@ -11885,22 +12722,21 @@ NoteModelFormMixin are needed.</p>
11885
12722
 
11886
12723
 
11887
12724
  <h2 id="nautobot.apps.forms.RelationshipModelFilterFormMixin" class="doc doc-heading">
11888
- <code>nautobot.apps.forms.RelationshipModelFilterFormMixin</code>
12725
+ <code>nautobot.apps.forms.RelationshipModelFilterFormMixin</code>
11889
12726
 
11890
12727
 
11891
12728
  <a href="#nautobot.apps.forms.RelationshipModelFilterFormMixin" class="headerlink" title="Permanent link">&para;</a></h2>
11892
12729
 
11893
12730
 
11894
- <div class="doc doc-contents ">
11895
- <p class="doc doc-class-bases">
11896
- Bases: <code><span title="django.forms.Form">Form</span></code></p>
12731
+ <div class="doc doc-contents ">
12732
+ <p class="doc doc-class-bases">
12733
+ Bases: <code><span title="django.forms.Form">Form</span></code></p>
11897
12734
 
11898
12735
 
11899
12736
 
11900
-
11901
12737
 
11902
- <div class="doc doc-children">
11903
12738
 
12739
+ <div class="doc doc-children">
11904
12740
 
11905
12741
 
11906
12742
 
@@ -11911,10 +12747,10 @@ NoteModelFormMixin are needed.</p>
11911
12747
 
11912
12748
 
11913
12749
 
11914
- </div>
11915
12750
 
11916
12751
  </div>
11917
12752
 
12753
+ </div>
11918
12754
 
11919
12755
  </div>
11920
12756
 
@@ -11923,22 +12759,21 @@ NoteModelFormMixin are needed.</p>
11923
12759
 
11924
12760
 
11925
12761
  <h2 id="nautobot.apps.forms.RelationshipModelFormMixin" class="doc doc-heading">
11926
- <code>nautobot.apps.forms.RelationshipModelFormMixin</code>
12762
+ <code>nautobot.apps.forms.RelationshipModelFormMixin</code>
11927
12763
 
11928
12764
 
11929
12765
  <a href="#nautobot.apps.forms.RelationshipModelFormMixin" class="headerlink" title="Permanent link">&para;</a></h2>
11930
12766
 
11931
12767
 
11932
- <div class="doc doc-contents ">
11933
- <p class="doc doc-class-bases">
11934
- Bases: <code><span title="django.forms.ModelForm">ModelForm</span></code></p>
12768
+ <div class="doc doc-contents ">
12769
+ <p class="doc doc-class-bases">
12770
+ Bases: <code><span title="django.forms.ModelForm">ModelForm</span></code></p>
11935
12771
 
11936
12772
 
11937
12773
 
11938
-
11939
12774
 
11940
- <div class="doc doc-children">
11941
12775
 
12776
+ <div class="doc doc-children">
11942
12777
 
11943
12778
 
11944
12779
 
@@ -11951,15 +12786,14 @@ NoteModelFormMixin are needed.</p>
11951
12786
  <div class="doc doc-object doc-function">
11952
12787
 
11953
12788
 
11954
-
11955
12789
  <h3 id="nautobot.apps.forms.RelationshipModelFormMixin.clean" class="doc doc-heading">
11956
- <code class="highlight language-python"><span class="n">clean</span><span class="p">()</span></code>
12790
+ <code class="highlight language-python"><span class="n">clean</span><span class="p">()</span></code>
11957
12791
 
11958
12792
  <a href="#nautobot.apps.forms.RelationshipModelFormMixin.clean" class="headerlink" title="Permanent link">&para;</a></h3>
11959
12793
 
11960
12794
 
11961
- <div class="doc doc-contents ">
11962
-
12795
+ <div class="doc doc-contents ">
12796
+
11963
12797
  <p>First check for any required relationships errors and if there are any, add them via form field errors.
11964
12798
  Then verify that any requested RelationshipAssociations do not violate relationship cardinality restrictions.</p>
11965
12799
  <ul>
@@ -11971,7 +12805,7 @@ Then verify that any requested RelationshipAssociations do not violate relations
11971
12805
  a different destination object.</li>
11972
12806
  </ul>
11973
12807
 
11974
- </div>
12808
+ </div>
11975
12809
 
11976
12810
  </div>
11977
12811
 
@@ -11979,8 +12813,7 @@ Then verify that any requested RelationshipAssociations do not violate relations
11979
12813
 
11980
12814
  </div>
11981
12815
 
11982
- </div>
11983
-
12816
+ </div>
11984
12817
 
11985
12818
  </div>
11986
12819
 
@@ -11989,24 +12822,23 @@ Then verify that any requested RelationshipAssociations do not violate relations
11989
12822
 
11990
12823
 
11991
12824
  <h2 id="nautobot.apps.forms.ReturnURLForm" class="doc doc-heading">
11992
- <code>nautobot.apps.forms.ReturnURLForm</code>
12825
+ <code>nautobot.apps.forms.ReturnURLForm</code>
11993
12826
 
11994
12827
 
11995
12828
  <a href="#nautobot.apps.forms.ReturnURLForm" class="headerlink" title="Permanent link">&para;</a></h2>
11996
12829
 
11997
12830
 
11998
- <div class="doc doc-contents ">
11999
- <p class="doc doc-class-bases">
12000
- Bases: <code><span title="django.forms.Form">Form</span></code></p>
12831
+ <div class="doc doc-contents ">
12832
+ <p class="doc doc-class-bases">
12833
+ Bases: <code><span title="django.forms.Form">Form</span></code></p>
12834
+
12001
12835
 
12002
-
12003
12836
  <p>Provides a hidden return URL field to control where the user is directed after the form is submitted.</p>
12004
12837
 
12005
12838
 
12006
-
12007
12839
 
12008
- <div class="doc doc-children">
12009
12840
 
12841
+ <div class="doc doc-children">
12010
12842
 
12011
12843
 
12012
12844
 
@@ -12017,10 +12849,10 @@ Then verify that any requested RelationshipAssociations do not violate relations
12017
12849
 
12018
12850
 
12019
12851
 
12020
- </div>
12021
12852
 
12022
12853
  </div>
12023
12854
 
12855
+ </div>
12024
12856
 
12025
12857
  </div>
12026
12858
 
@@ -12029,24 +12861,23 @@ Then verify that any requested RelationshipAssociations do not violate relations
12029
12861
 
12030
12862
 
12031
12863
  <h2 id="nautobot.apps.forms.RoleModelBulkEditFormMixin" class="doc doc-heading">
12032
- <code>nautobot.apps.forms.RoleModelBulkEditFormMixin</code>
12864
+ <code>nautobot.apps.forms.RoleModelBulkEditFormMixin</code>
12033
12865
 
12034
12866
 
12035
12867
  <a href="#nautobot.apps.forms.RoleModelBulkEditFormMixin" class="headerlink" title="Permanent link">&para;</a></h2>
12036
12868
 
12037
12869
 
12038
- <div class="doc doc-contents ">
12039
- <p class="doc doc-class-bases">
12040
- Bases: <code><span title="django.forms.Form">Form</span></code></p>
12870
+ <div class="doc doc-contents ">
12871
+ <p class="doc doc-class-bases">
12872
+ Bases: <code><span title="django.forms.Form">Form</span></code></p>
12873
+
12041
12874
 
12042
-
12043
12875
  <p>Mixin to add non-required <code>role</code> choice field to forms.</p>
12044
12876
 
12045
12877
 
12046
-
12047
12878
 
12048
- <div class="doc doc-children">
12049
12879
 
12880
+ <div class="doc doc-children">
12050
12881
 
12051
12882
 
12052
12883
 
@@ -12057,10 +12888,10 @@ Then verify that any requested RelationshipAssociations do not violate relations
12057
12888
 
12058
12889
 
12059
12890
 
12060
- </div>
12061
12891
 
12062
12892
  </div>
12063
12893
 
12894
+ </div>
12064
12895
 
12065
12896
  </div>
12066
12897
 
@@ -12069,24 +12900,23 @@ Then verify that any requested RelationshipAssociations do not violate relations
12069
12900
 
12070
12901
 
12071
12902
  <h2 id="nautobot.apps.forms.RoleModelFilterFormMixin" class="doc doc-heading">
12072
- <code>nautobot.apps.forms.RoleModelFilterFormMixin</code>
12903
+ <code>nautobot.apps.forms.RoleModelFilterFormMixin</code>
12073
12904
 
12074
12905
 
12075
12906
  <a href="#nautobot.apps.forms.RoleModelFilterFormMixin" class="headerlink" title="Permanent link">&para;</a></h2>
12076
12907
 
12077
12908
 
12078
- <div class="doc doc-contents ">
12079
- <p class="doc doc-class-bases">
12080
- Bases: <code><span title="django.forms.Form">Form</span></code></p>
12909
+ <div class="doc doc-contents ">
12910
+ <p class="doc doc-class-bases">
12911
+ Bases: <code><span title="django.forms.Form">Form</span></code></p>
12912
+
12081
12913
 
12082
-
12083
12914
  <p>Mixin to add non-required <code>role</code> multiple-choice field to filter forms.</p>
12084
12915
 
12085
12916
 
12086
-
12087
12917
 
12088
- <div class="doc doc-children">
12089
12918
 
12919
+ <div class="doc doc-children">
12090
12920
 
12091
12921
 
12092
12922
 
@@ -12097,10 +12927,10 @@ Then verify that any requested RelationshipAssociations do not violate relations
12097
12927
 
12098
12928
 
12099
12929
 
12100
- </div>
12101
12930
 
12102
12931
  </div>
12103
12932
 
12933
+ </div>
12104
12934
 
12105
12935
  </div>
12106
12936
 
@@ -12109,25 +12939,24 @@ Then verify that any requested RelationshipAssociations do not violate relations
12109
12939
 
12110
12940
 
12111
12941
  <h2 id="nautobot.apps.forms.SelectWithDisabled" class="doc doc-heading">
12112
- <code>nautobot.apps.forms.SelectWithDisabled</code>
12942
+ <code>nautobot.apps.forms.SelectWithDisabled</code>
12113
12943
 
12114
12944
 
12115
12945
  <a href="#nautobot.apps.forms.SelectWithDisabled" class="headerlink" title="Permanent link">&para;</a></h2>
12116
12946
 
12117
12947
 
12118
- <div class="doc doc-contents ">
12119
- <p class="doc doc-class-bases">
12120
- Bases: <code><span title="django.forms.Select">Select</span></code></p>
12948
+ <div class="doc doc-contents ">
12949
+ <p class="doc doc-class-bases">
12950
+ Bases: <code><span title="django.forms.Select">Select</span></code></p>
12951
+
12121
12952
 
12122
-
12123
12953
  <p>Modified the stock Select widget to accept choices using a dict() for a label. The dict for each option must include
12124
12954
  'label' (string) and 'disabled' (boolean).</p>
12125
12955
 
12126
12956
 
12127
-
12128
12957
 
12129
- <div class="doc doc-children">
12130
12958
 
12959
+ <div class="doc doc-children">
12131
12960
 
12132
12961
 
12133
12962
 
@@ -12138,10 +12967,10 @@ Then verify that any requested RelationshipAssociations do not violate relations
12138
12967
 
12139
12968
 
12140
12969
 
12141
- </div>
12142
12970
 
12143
12971
  </div>
12144
12972
 
12973
+ </div>
12145
12974
 
12146
12975
  </div>
12147
12976
 
@@ -12150,24 +12979,23 @@ Then verify that any requested RelationshipAssociations do not violate relations
12150
12979
 
12151
12980
 
12152
12981
  <h2 id="nautobot.apps.forms.SelectWithPK" class="doc doc-heading">
12153
- <code>nautobot.apps.forms.SelectWithPK</code>
12982
+ <code>nautobot.apps.forms.SelectWithPK</code>
12154
12983
 
12155
12984
 
12156
12985
  <a href="#nautobot.apps.forms.SelectWithPK" class="headerlink" title="Permanent link">&para;</a></h2>
12157
12986
 
12158
12987
 
12159
- <div class="doc doc-contents ">
12160
- <p class="doc doc-class-bases">
12161
- Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.forms.widgets.StaticSelect2" href="#nautobot.apps.forms.StaticSelect2">StaticSelect2</a></code></p>
12988
+ <div class="doc doc-contents ">
12989
+ <p class="doc doc-class-bases">
12990
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.forms.widgets.StaticSelect2" href="#nautobot.apps.forms.StaticSelect2">StaticSelect2</a></code></p>
12991
+
12162
12992
 
12163
-
12164
12993
  <p>Include the primary key of each option in the option label (e.g. "Router7 (4721)").</p>
12165
12994
 
12166
12995
 
12167
-
12168
12996
 
12169
- <div class="doc doc-children">
12170
12997
 
12998
+ <div class="doc doc-children">
12171
12999
 
12172
13000
 
12173
13001
 
@@ -12178,10 +13006,10 @@ Then verify that any requested RelationshipAssociations do not violate relations
12178
13006
 
12179
13007
 
12180
13008
 
12181
- </div>
12182
13009
 
12183
13010
  </div>
12184
13011
 
13012
+ </div>
12185
13013
 
12186
13014
  </div>
12187
13015
 
@@ -12190,24 +13018,23 @@ Then verify that any requested RelationshipAssociations do not violate relations
12190
13018
 
12191
13019
 
12192
13020
  <h2 id="nautobot.apps.forms.SlugField" class="doc doc-heading">
12193
- <code>nautobot.apps.forms.SlugField</code>
13021
+ <code>nautobot.apps.forms.SlugField</code>
12194
13022
 
12195
13023
 
12196
13024
  <a href="#nautobot.apps.forms.SlugField" class="headerlink" title="Permanent link">&para;</a></h2>
12197
13025
 
12198
13026
 
12199
- <div class="doc doc-contents ">
12200
- <p class="doc doc-class-bases">
12201
- Bases: <code><span title="django.forms.SlugField">SlugField</span></code></p>
13027
+ <div class="doc doc-contents ">
13028
+ <p class="doc doc-class-bases">
13029
+ Bases: <code><span title="django.forms.SlugField">SlugField</span></code></p>
13030
+
12202
13031
 
12203
-
12204
13032
  <p>Extend the built-in SlugField to automatically populate from a field called <code>name</code> unless otherwise specified.</p>
12205
13033
 
12206
13034
 
12207
-
12208
13035
 
12209
- <div class="doc doc-children">
12210
13036
 
13037
+ <div class="doc doc-children">
12211
13038
 
12212
13039
 
12213
13040
 
@@ -12220,48 +13047,46 @@ Then verify that any requested RelationshipAssociations do not violate relations
12220
13047
  <div class="doc doc-object doc-function">
12221
13048
 
12222
13049
 
12223
-
12224
13050
  <h3 id="nautobot.apps.forms.SlugField.__init__" class="doc doc-heading">
12225
- <code class="highlight language-python"><span class="fm">__init__</span><span class="p">(</span><span class="n">slug_source</span><span class="o">=</span><span class="s1">&#39;name&#39;</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span></code>
13051
+ <code class="highlight language-python"><span class="fm">__init__</span><span class="p">(</span><span class="n">slug_source</span><span class="o">=</span><span class="s1">&#39;name&#39;</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span></code>
12226
13052
 
12227
13053
  <a href="#nautobot.apps.forms.SlugField.__init__" class="headerlink" title="Permanent link">&para;</a></h3>
12228
13054
 
12229
13055
 
12230
- <div class="doc doc-contents ">
12231
-
12232
- <p>Instantiate a SlugField.</p>
13056
+ <div class="doc doc-contents ">
12233
13057
 
13058
+ <p>Instantiate a SlugField.</p>
12234
13059
 
12235
13060
 
12236
- <p><strong>Parameters:</strong></p>
12237
- <table>
12238
- <thead>
12239
- <tr>
12240
- <th>Name</th>
12241
- <th>Type</th>
12242
- <th>Description</th>
12243
- <th>Default</th>
12244
- </tr>
12245
- </thead>
12246
- <tbody>
13061
+ <p><span class="doc-section-title">Parameters:</span></p>
13062
+ <table>
13063
+ <thead>
12247
13064
  <tr>
12248
- <td><code>slug_source</code></td>
12249
- <td>
12250
- <code>(str, tuple)</code>
12251
- </td>
12252
- <td>
12253
- <div class="doc-md-description">
12254
- <p>Name of the field (or a list of field names) that will be used to suggest a slug.</p>
12255
- </div>
12256
- </td>
12257
- <td>
12258
- <code>&#39;name&#39;</code>
12259
- </td>
13065
+ <th>Name</th>
13066
+ <th>Type</th>
13067
+ <th>Description</th>
13068
+ <th>Default</th>
12260
13069
  </tr>
12261
- </tbody>
12262
- </table>
13070
+ </thead>
13071
+ <tbody>
13072
+ <tr class="doc-section-item">
13073
+ <td><code>slug_source</code></td>
13074
+ <td>
13075
+ <code>(str, tuple)</code>
13076
+ </td>
13077
+ <td>
13078
+ <div class="doc-md-description">
13079
+ <p>Name of the field (or a list of field names) that will be used to suggest a slug.</p>
13080
+ </div>
13081
+ </td>
13082
+ <td>
13083
+ <code>&#39;name&#39;</code>
13084
+ </td>
13085
+ </tr>
13086
+ </tbody>
13087
+ </table>
12263
13088
 
12264
- </div>
13089
+ </div>
12265
13090
 
12266
13091
  </div>
12267
13092
 
@@ -12269,8 +13094,7 @@ Then verify that any requested RelationshipAssociations do not violate relations
12269
13094
 
12270
13095
  </div>
12271
13096
 
12272
- </div>
12273
-
13097
+ </div>
12274
13098
 
12275
13099
  </div>
12276
13100
 
@@ -12279,24 +13103,23 @@ Then verify that any requested RelationshipAssociations do not violate relations
12279
13103
 
12280
13104
 
12281
13105
  <h2 id="nautobot.apps.forms.SlugWidget" class="doc doc-heading">
12282
- <code>nautobot.apps.forms.SlugWidget</code>
13106
+ <code>nautobot.apps.forms.SlugWidget</code>
12283
13107
 
12284
13108
 
12285
13109
  <a href="#nautobot.apps.forms.SlugWidget" class="headerlink" title="Permanent link">&para;</a></h2>
12286
13110
 
12287
13111
 
12288
- <div class="doc doc-contents ">
12289
- <p class="doc doc-class-bases">
12290
- Bases: <code><span title="django.forms.TextInput">TextInput</span></code></p>
13112
+ <div class="doc doc-contents ">
13113
+ <p class="doc doc-class-bases">
13114
+ Bases: <code><span title="django.forms.TextInput">TextInput</span></code></p>
13115
+
12291
13116
 
12292
-
12293
13117
  <p>Subclass TextInput and add a slug regeneration button next to the form field.</p>
12294
13118
 
12295
13119
 
12296
-
12297
13120
 
12298
- <div class="doc doc-children">
12299
13121
 
13122
+ <div class="doc doc-children">
12300
13123
 
12301
13124
 
12302
13125
 
@@ -12307,10 +13130,10 @@ Then verify that any requested RelationshipAssociations do not violate relations
12307
13130
 
12308
13131
 
12309
13132
 
12310
- </div>
12311
13133
 
12312
13134
  </div>
12313
13135
 
13136
+ </div>
12314
13137
 
12315
13138
  </div>
12316
13139
 
@@ -12319,22 +13142,21 @@ Then verify that any requested RelationshipAssociations do not violate relations
12319
13142
 
12320
13143
 
12321
13144
  <h2 id="nautobot.apps.forms.SmallTextarea" class="doc doc-heading">
12322
- <code>nautobot.apps.forms.SmallTextarea</code>
13145
+ <code>nautobot.apps.forms.SmallTextarea</code>
12323
13146
 
12324
13147
 
12325
13148
  <a href="#nautobot.apps.forms.SmallTextarea" class="headerlink" title="Permanent link">&para;</a></h2>
12326
13149
 
12327
13150
 
12328
- <div class="doc doc-contents ">
12329
- <p class="doc doc-class-bases">
12330
- Bases: <code><span title="django.forms.Textarea">Textarea</span></code></p>
13151
+ <div class="doc doc-contents ">
13152
+ <p class="doc doc-class-bases">
13153
+ Bases: <code><span title="django.forms.Textarea">Textarea</span></code></p>
12331
13154
 
12332
-
12333
- <p>Subclass used for rendering a smaller textarea element.</p>
12334
13155
 
13156
+ <p>Subclass used for rendering a smaller textarea element.</p>
12335
13157
 
12336
- </div>
12337
13158
 
13159
+ </div>
12338
13160
 
12339
13161
  </div>
12340
13162
 
@@ -12343,24 +13165,23 @@ Then verify that any requested RelationshipAssociations do not violate relations
12343
13165
 
12344
13166
 
12345
13167
  <h2 id="nautobot.apps.forms.StaticSelect2" class="doc doc-heading">
12346
- <code>nautobot.apps.forms.StaticSelect2</code>
13168
+ <code>nautobot.apps.forms.StaticSelect2</code>
12347
13169
 
12348
13170
 
12349
13171
  <a href="#nautobot.apps.forms.StaticSelect2" class="headerlink" title="Permanent link">&para;</a></h2>
12350
13172
 
12351
13173
 
12352
- <div class="doc doc-contents ">
12353
- <p class="doc doc-class-bases">
12354
- Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.forms.widgets.SelectWithDisabled" href="#nautobot.apps.forms.SelectWithDisabled">SelectWithDisabled</a></code></p>
13174
+ <div class="doc doc-contents ">
13175
+ <p class="doc doc-class-bases">
13176
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.forms.widgets.SelectWithDisabled" href="#nautobot.apps.forms.SelectWithDisabled">SelectWithDisabled</a></code></p>
13177
+
12355
13178
 
12356
-
12357
13179
  <p>A static <select> form widget using the Select2 library.</p>
12358
13180
 
12359
13181
 
12360
-
12361
13182
 
12362
- <div class="doc doc-children">
12363
13183
 
13184
+ <div class="doc doc-children">
12364
13185
 
12365
13186
 
12366
13187
 
@@ -12371,10 +13192,10 @@ Then verify that any requested RelationshipAssociations do not violate relations
12371
13192
 
12372
13193
 
12373
13194
 
12374
- </div>
12375
13195
 
12376
13196
  </div>
12377
13197
 
13198
+ </div>
12378
13199
 
12379
13200
  </div>
12380
13201
 
@@ -12383,24 +13204,23 @@ Then verify that any requested RelationshipAssociations do not violate relations
12383
13204
 
12384
13205
 
12385
13206
  <h2 id="nautobot.apps.forms.StatusModelBulkEditFormMixin" class="doc doc-heading">
12386
- <code>nautobot.apps.forms.StatusModelBulkEditFormMixin</code>
13207
+ <code>nautobot.apps.forms.StatusModelBulkEditFormMixin</code>
12387
13208
 
12388
13209
 
12389
13210
  <a href="#nautobot.apps.forms.StatusModelBulkEditFormMixin" class="headerlink" title="Permanent link">&para;</a></h2>
12390
13211
 
12391
13212
 
12392
- <div class="doc doc-contents ">
12393
- <p class="doc doc-class-bases">
12394
- Bases: <code><span title="django.forms.Form">Form</span></code></p>
13213
+ <div class="doc doc-contents ">
13214
+ <p class="doc doc-class-bases">
13215
+ Bases: <code><span title="django.forms.Form">Form</span></code></p>
13216
+
12395
13217
 
12396
-
12397
13218
  <p>Mixin to add non-required <code>status</code> choice field to forms.</p>
12398
13219
 
12399
13220
 
12400
-
12401
13221
 
12402
- <div class="doc doc-children">
12403
13222
 
13223
+ <div class="doc doc-children">
12404
13224
 
12405
13225
 
12406
13226
 
@@ -12411,10 +13231,10 @@ Then verify that any requested RelationshipAssociations do not violate relations
12411
13231
 
12412
13232
 
12413
13233
 
12414
- </div>
12415
13234
 
12416
13235
  </div>
12417
13236
 
13237
+ </div>
12418
13238
 
12419
13239
  </div>
12420
13240
 
@@ -12423,24 +13243,23 @@ Then verify that any requested RelationshipAssociations do not violate relations
12423
13243
 
12424
13244
 
12425
13245
  <h2 id="nautobot.apps.forms.StatusModelFilterFormMixin" class="doc doc-heading">
12426
- <code>nautobot.apps.forms.StatusModelFilterFormMixin</code>
13246
+ <code>nautobot.apps.forms.StatusModelFilterFormMixin</code>
12427
13247
 
12428
13248
 
12429
13249
  <a href="#nautobot.apps.forms.StatusModelFilterFormMixin" class="headerlink" title="Permanent link">&para;</a></h2>
12430
13250
 
12431
13251
 
12432
- <div class="doc doc-contents ">
12433
- <p class="doc doc-class-bases">
12434
- Bases: <code><span title="django.forms.Form">Form</span></code></p>
13252
+ <div class="doc doc-contents ">
13253
+ <p class="doc doc-class-bases">
13254
+ Bases: <code><span title="django.forms.Form">Form</span></code></p>
13255
+
12435
13256
 
12436
-
12437
13257
  <p>Mixin to add non-required <code>status</code> multiple-choice field to filter forms.</p>
12438
13258
 
12439
13259
 
12440
-
12441
13260
 
12442
- <div class="doc doc-children">
12443
13261
 
13262
+ <div class="doc doc-children">
12444
13263
 
12445
13264
 
12446
13265
 
@@ -12451,10 +13270,10 @@ Then verify that any requested RelationshipAssociations do not violate relations
12451
13270
 
12452
13271
 
12453
13272
 
12454
- </div>
12455
13273
 
12456
13274
  </div>
12457
13275
 
13276
+ </div>
12458
13277
 
12459
13278
  </div>
12460
13279
 
@@ -12463,24 +13282,23 @@ Then verify that any requested RelationshipAssociations do not violate relations
12463
13282
 
12464
13283
 
12465
13284
  <h2 id="nautobot.apps.forms.TableConfigForm" class="doc doc-heading">
12466
- <code>nautobot.apps.forms.TableConfigForm</code>
13285
+ <code>nautobot.apps.forms.TableConfigForm</code>
12467
13286
 
12468
13287
 
12469
13288
  <a href="#nautobot.apps.forms.TableConfigForm" class="headerlink" title="Permanent link">&para;</a></h2>
12470
13289
 
12471
13290
 
12472
- <div class="doc doc-contents ">
12473
- <p class="doc doc-class-bases">
12474
- 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>
13291
+ <div class="doc doc-contents ">
13292
+ <p class="doc doc-class-bases">
13293
+ 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>
13294
+
12475
13295
 
12476
-
12477
13296
  <p>Form for configuring user's table preferences.</p>
12478
13297
 
12479
13298
 
12480
-
12481
13299
 
12482
- <div class="doc doc-children">
12483
13300
 
13301
+ <div class="doc doc-children">
12484
13302
 
12485
13303
 
12486
13304
 
@@ -12491,10 +13309,10 @@ Then verify that any requested RelationshipAssociations do not violate relations
12491
13309
 
12492
13310
 
12493
13311
 
12494
- </div>
12495
13312
 
12496
13313
  </div>
12497
13314
 
13315
+ </div>
12498
13316
 
12499
13317
  </div>
12500
13318
 
@@ -12503,25 +13321,24 @@ Then verify that any requested RelationshipAssociations do not violate relations
12503
13321
 
12504
13322
 
12505
13323
  <h2 id="nautobot.apps.forms.TagFilterField" class="doc doc-heading">
12506
- <code>nautobot.apps.forms.TagFilterField</code>
13324
+ <code>nautobot.apps.forms.TagFilterField</code>
12507
13325
 
12508
13326
 
12509
13327
  <a href="#nautobot.apps.forms.TagFilterField" class="headerlink" title="Permanent link">&para;</a></h2>
12510
13328
 
12511
13329
 
12512
- <div class="doc doc-contents ">
12513
- <p class="doc doc-class-bases">
12514
- Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.forms.fields.DynamicModelMultipleChoiceField" href="#nautobot.apps.forms.DynamicModelMultipleChoiceField">DynamicModelMultipleChoiceField</a></code></p>
13330
+ <div class="doc doc-contents ">
13331
+ <p class="doc doc-class-bases">
13332
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.forms.fields.DynamicModelMultipleChoiceField" href="#nautobot.apps.forms.DynamicModelMultipleChoiceField">DynamicModelMultipleChoiceField</a></code></p>
13333
+
12515
13334
 
12516
-
12517
13335
  <p>A filter field for the tags of a model. Only the tags used by a model are displayed.</p>
12518
13336
  <p>:param model: The model of the filter</p>
12519
13337
 
12520
13338
 
12521
-
12522
13339
 
12523
- <div class="doc doc-children">
12524
13340
 
13341
+ <div class="doc doc-children">
12525
13342
 
12526
13343
 
12527
13344
 
@@ -12534,16 +13351,15 @@ Then verify that any requested RelationshipAssociations do not violate relations
12534
13351
  <div class="doc doc-object doc-function">
12535
13352
 
12536
13353
 
12537
-
12538
13354
  <h3 id="nautobot.apps.forms.TagFilterField.__init__" class="doc doc-heading">
12539
- <code class="highlight language-python"><span class="fm">__init__</span><span class="p">(</span><span class="n">model</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="n">query_params</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">queryset</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span></code>
13355
+ <code class="highlight language-python"><span class="fm">__init__</span><span class="p">(</span><span class="n">model</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="n">query_params</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">queryset</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span></code>
12540
13356
 
12541
13357
  <a href="#nautobot.apps.forms.TagFilterField.__init__" class="headerlink" title="Permanent link">&para;</a></h3>
12542
13358
 
12543
13359
 
12544
- <div class="doc doc-contents ">
13360
+ <div class="doc doc-contents ">
12545
13361
 
12546
- </div>
13362
+ </div>
12547
13363
 
12548
13364
  </div>
12549
13365
 
@@ -12551,8 +13367,7 @@ Then verify that any requested RelationshipAssociations do not violate relations
12551
13367
 
12552
13368
  </div>
12553
13369
 
12554
- </div>
12555
-
13370
+ </div>
12556
13371
 
12557
13372
  </div>
12558
13373
 
@@ -12561,24 +13376,23 @@ Then verify that any requested RelationshipAssociations do not violate relations
12561
13376
 
12562
13377
 
12563
13378
  <h2 id="nautobot.apps.forms.TimePicker" class="doc doc-heading">
12564
- <code>nautobot.apps.forms.TimePicker</code>
13379
+ <code>nautobot.apps.forms.TimePicker</code>
12565
13380
 
12566
13381
 
12567
13382
  <a href="#nautobot.apps.forms.TimePicker" class="headerlink" title="Permanent link">&para;</a></h2>
12568
13383
 
12569
13384
 
12570
- <div class="doc doc-contents ">
12571
- <p class="doc doc-class-bases">
12572
- Bases: <code><span title="django.forms.TextInput">TextInput</span></code></p>
13385
+ <div class="doc doc-contents ">
13386
+ <p class="doc doc-class-bases">
13387
+ Bases: <code><span title="django.forms.TextInput">TextInput</span></code></p>
13388
+
12573
13389
 
12574
-
12575
13390
  <p>Time picker using Flatpickr.</p>
12576
13391
 
12577
13392
 
12578
-
12579
13393
 
12580
- <div class="doc doc-children">
12581
13394
 
13395
+ <div class="doc doc-children">
12582
13396
 
12583
13397
 
12584
13398
 
@@ -12589,173 +13403,157 @@ Then verify that any requested RelationshipAssociations do not violate relations
12589
13403
 
12590
13404
 
12591
13405
 
12592
- </div>
12593
13406
 
12594
13407
  </div>
12595
13408
 
13409
+ </div>
12596
13410
 
12597
13411
  </div>
12598
13412
 
12599
13413
 
12600
-
12601
13414
  <div class="doc doc-object doc-function">
12602
13415
 
12603
13416
 
12604
-
12605
13417
  <h2 id="nautobot.apps.forms.add_blank_choice" class="doc doc-heading">
12606
- <code class="highlight language-python"><span class="n">nautobot</span><span class="o">.</span><span class="n">apps</span><span class="o">.</span><span class="n">forms</span><span class="o">.</span><span class="n">add_blank_choice</span><span class="p">(</span><span class="n">choices</span><span class="p">)</span></code>
13418
+ <code class="highlight language-python"><span class="n">nautobot</span><span class="o">.</span><span class="n">apps</span><span class="o">.</span><span class="n">forms</span><span class="o">.</span><span class="n">add_blank_choice</span><span class="p">(</span><span class="n">choices</span><span class="p">)</span></code>
12607
13419
 
12608
13420
  <a href="#nautobot.apps.forms.add_blank_choice" class="headerlink" title="Permanent link">&para;</a></h2>
12609
13421
 
12610
13422
 
12611
- <div class="doc doc-contents ">
12612
-
13423
+ <div class="doc doc-contents ">
13424
+
12613
13425
  <p>Add a blank choice to the beginning of a choices list.</p>
12614
13426
 
12615
- </div>
13427
+ </div>
12616
13428
 
12617
13429
  </div>
12618
13430
 
12619
-
12620
13431
  <div class="doc doc-object doc-function">
12621
13432
 
12622
13433
 
12623
-
12624
13434
  <h2 id="nautobot.apps.forms.add_field_to_filter_form_class" class="doc doc-heading">
12625
- <code class="highlight language-python"><span class="n">nautobot</span><span class="o">.</span><span class="n">apps</span><span class="o">.</span><span class="n">forms</span><span class="o">.</span><span class="n">add_field_to_filter_form_class</span><span class="p">(</span><span class="n">form_class</span><span class="p">,</span> <span class="n">field_name</span><span class="p">,</span> <span class="n">field_obj</span><span class="p">)</span></code>
13435
+ <code class="highlight language-python"><span class="n">nautobot</span><span class="o">.</span><span class="n">apps</span><span class="o">.</span><span class="n">forms</span><span class="o">.</span><span class="n">add_field_to_filter_form_class</span><span class="p">(</span><span class="n">form_class</span><span class="p">,</span> <span class="n">field_name</span><span class="p">,</span> <span class="n">field_obj</span><span class="p">)</span></code>
12626
13436
 
12627
13437
  <a href="#nautobot.apps.forms.add_field_to_filter_form_class" class="headerlink" title="Permanent link">&para;</a></h2>
12628
13438
 
12629
13439
 
12630
- <div class="doc doc-contents ">
12631
-
13440
+ <div class="doc doc-contents ">
13441
+
12632
13442
  <p>Attach a field to an existing filter form class.</p>
12633
13443
 
12634
- </div>
13444
+ </div>
12635
13445
 
12636
13446
  </div>
12637
13447
 
12638
-
12639
13448
  <div class="doc doc-object doc-function">
12640
13449
 
12641
13450
 
12642
-
12643
13451
  <h2 id="nautobot.apps.forms.expand_alphanumeric_pattern" class="doc doc-heading">
12644
- <code class="highlight language-python"><span class="n">nautobot</span><span class="o">.</span><span class="n">apps</span><span class="o">.</span><span class="n">forms</span><span class="o">.</span><span class="n">expand_alphanumeric_pattern</span><span class="p">(</span><span class="n">string</span><span class="p">)</span></code>
13452
+ <code class="highlight language-python"><span class="n">nautobot</span><span class="o">.</span><span class="n">apps</span><span class="o">.</span><span class="n">forms</span><span class="o">.</span><span class="n">expand_alphanumeric_pattern</span><span class="p">(</span><span class="n">string</span><span class="p">)</span></code>
12645
13453
 
12646
13454
  <a href="#nautobot.apps.forms.expand_alphanumeric_pattern" class="headerlink" title="Permanent link">&para;</a></h2>
12647
13455
 
12648
13456
 
12649
- <div class="doc doc-contents ">
12650
-
13457
+ <div class="doc doc-contents ">
13458
+
12651
13459
  <p>Expand an alphabetic pattern into a list of strings.</p>
12652
13460
 
12653
- </div>
13461
+ </div>
12654
13462
 
12655
13463
  </div>
12656
13464
 
12657
-
12658
13465
  <div class="doc doc-object doc-function">
12659
13466
 
12660
13467
 
12661
-
12662
13468
  <h2 id="nautobot.apps.forms.expand_ipaddress_pattern" class="doc doc-heading">
12663
- <code class="highlight language-python"><span class="n">nautobot</span><span class="o">.</span><span class="n">apps</span><span class="o">.</span><span class="n">forms</span><span class="o">.</span><span class="n">expand_ipaddress_pattern</span><span class="p">(</span><span class="n">string</span><span class="p">,</span> <span class="n">ip_version</span><span class="p">)</span></code>
13469
+ <code class="highlight language-python"><span class="n">nautobot</span><span class="o">.</span><span class="n">apps</span><span class="o">.</span><span class="n">forms</span><span class="o">.</span><span class="n">expand_ipaddress_pattern</span><span class="p">(</span><span class="n">string</span><span class="p">,</span> <span class="n">ip_version</span><span class="p">)</span></code>
12664
13470
 
12665
13471
  <a href="#nautobot.apps.forms.expand_ipaddress_pattern" class="headerlink" title="Permanent link">&para;</a></h2>
12666
13472
 
12667
13473
 
12668
- <div class="doc doc-contents ">
12669
-
13474
+ <div class="doc doc-contents ">
13475
+
12670
13476
  <p>Expand an IP address pattern into a list of strings. Examples:
12671
13477
  '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']
12672
13478
  '2001:db8:0:[0,fd-ff]::/64' =&gt; ['2001:db8:0:0::/64', '2001:db8:0:fd::/64', ... '2001:db8:0:ff::/64']</p>
12673
13479
 
12674
- </div>
13480
+ </div>
12675
13481
 
12676
13482
  </div>
12677
13483
 
12678
-
12679
13484
  <div class="doc doc-object doc-function">
12680
13485
 
12681
13486
 
12682
-
12683
13487
  <h2 id="nautobot.apps.forms.form_from_model" class="doc doc-heading">
12684
- <code class="highlight language-python"><span class="n">nautobot</span><span class="o">.</span><span class="n">apps</span><span class="o">.</span><span class="n">forms</span><span class="o">.</span><span class="n">form_from_model</span><span class="p">(</span><span class="n">model</span><span class="p">,</span> <span class="n">fields</span><span class="p">)</span></code>
13488
+ <code class="highlight language-python"><span class="n">nautobot</span><span class="o">.</span><span class="n">apps</span><span class="o">.</span><span class="n">forms</span><span class="o">.</span><span class="n">form_from_model</span><span class="p">(</span><span class="n">model</span><span class="p">,</span> <span class="n">fields</span><span class="p">)</span></code>
12685
13489
 
12686
13490
  <a href="#nautobot.apps.forms.form_from_model" class="headerlink" title="Permanent link">&para;</a></h2>
12687
13491
 
12688
13492
 
12689
- <div class="doc doc-contents ">
12690
-
13493
+ <div class="doc doc-contents ">
13494
+
12691
13495
  <p>Return a Form class with the specified fields derived from a model. This is useful when we need a form to be used
12692
13496
  for creating objects, but want to avoid the model's validation (e.g. for bulk create/edit functions). All fields
12693
13497
  are marked as not required.</p>
12694
13498
 
12695
- </div>
13499
+ </div>
12696
13500
 
12697
13501
  </div>
12698
13502
 
12699
-
12700
13503
  <div class="doc doc-object doc-function">
12701
13504
 
12702
13505
 
12703
-
12704
13506
  <h2 id="nautobot.apps.forms.parse_alphanumeric_range" class="doc doc-heading">
12705
- <code class="highlight language-python"><span class="n">nautobot</span><span class="o">.</span><span class="n">apps</span><span class="o">.</span><span class="n">forms</span><span class="o">.</span><span class="n">parse_alphanumeric_range</span><span class="p">(</span><span class="n">string</span><span class="p">)</span></code>
13507
+ <code class="highlight language-python"><span class="n">nautobot</span><span class="o">.</span><span class="n">apps</span><span class="o">.</span><span class="n">forms</span><span class="o">.</span><span class="n">parse_alphanumeric_range</span><span class="p">(</span><span class="n">string</span><span class="p">)</span></code>
12706
13508
 
12707
13509
  <a href="#nautobot.apps.forms.parse_alphanumeric_range" class="headerlink" title="Permanent link">&para;</a></h2>
12708
13510
 
12709
13511
 
12710
- <div class="doc doc-contents ">
12711
-
13512
+ <div class="doc doc-contents ">
13513
+
12712
13514
  <p>Expand an alphanumeric range (continuous or not) into a list.
12713
13515
  'a-d,f' =&gt; [a, b, c, d, f]
12714
13516
  '0-3,a-d' =&gt; [0, 1, 2, 3, a, b, c, d]</p>
12715
13517
 
12716
- </div>
13518
+ </div>
12717
13519
 
12718
13520
  </div>
12719
13521
 
12720
-
12721
13522
  <div class="doc doc-object doc-function">
12722
13523
 
12723
13524
 
12724
-
12725
13525
  <h2 id="nautobot.apps.forms.parse_numeric_range" class="doc doc-heading">
12726
- <code class="highlight language-python"><span class="n">nautobot</span><span class="o">.</span><span class="n">apps</span><span class="o">.</span><span class="n">forms</span><span class="o">.</span><span class="n">parse_numeric_range</span><span class="p">(</span><span class="n">string</span><span class="p">,</span> <span class="n">base</span><span class="o">=</span><span class="mi">10</span><span class="p">)</span></code>
13526
+ <code class="highlight language-python"><span class="n">nautobot</span><span class="o">.</span><span class="n">apps</span><span class="o">.</span><span class="n">forms</span><span class="o">.</span><span class="n">parse_numeric_range</span><span class="p">(</span><span class="n">string</span><span class="p">,</span> <span class="n">base</span><span class="o">=</span><span class="mi">10</span><span class="p">)</span></code>
12727
13527
 
12728
13528
  <a href="#nautobot.apps.forms.parse_numeric_range" class="headerlink" title="Permanent link">&para;</a></h2>
12729
13529
 
12730
13530
 
12731
- <div class="doc doc-contents ">
12732
-
13531
+ <div class="doc doc-contents ">
13532
+
12733
13533
  <p>Expand a numeric range (continuous or not) into a decimal or
12734
13534
  hexadecimal list, as specified by the base parameter
12735
13535
  '0-3,5' =&gt; [0, 1, 2, 3, 5]
12736
13536
  '2,8-b,d,f' =&gt; [2, 8, 9, a, b, d, f]</p>
12737
13537
 
12738
- </div>
13538
+ </div>
12739
13539
 
12740
13540
  </div>
12741
13541
 
12742
-
12743
13542
  <div class="doc doc-object doc-function">
12744
13543
 
12745
13544
 
12746
-
12747
13545
  <h2 id="nautobot.apps.forms.restrict_form_fields" class="doc doc-heading">
12748
- <code class="highlight language-python"><span class="n">nautobot</span><span class="o">.</span><span class="n">apps</span><span class="o">.</span><span class="n">forms</span><span class="o">.</span><span class="n">restrict_form_fields</span><span class="p">(</span><span class="n">form</span><span class="p">,</span> <span class="n">user</span><span class="p">,</span> <span class="n">action</span><span class="o">=</span><span class="s1">&#39;view&#39;</span><span class="p">)</span></code>
13546
+ <code class="highlight language-python"><span class="n">nautobot</span><span class="o">.</span><span class="n">apps</span><span class="o">.</span><span class="n">forms</span><span class="o">.</span><span class="n">restrict_form_fields</span><span class="p">(</span><span class="n">form</span><span class="p">,</span> <span class="n">user</span><span class="p">,</span> <span class="n">action</span><span class="o">=</span><span class="s1">&#39;view&#39;</span><span class="p">)</span></code>
12749
13547
 
12750
13548
  <a href="#nautobot.apps.forms.restrict_form_fields" class="headerlink" title="Permanent link">&para;</a></h2>
12751
13549
 
12752
13550
 
12753
- <div class="doc doc-contents ">
12754
-
13551
+ <div class="doc doc-contents ">
13552
+
12755
13553
  <p>Restrict all form fields which reference a RestrictedQuerySet. This ensures that users see only permitted objects
12756
13554
  as available choices.</p>
12757
13555
 
12758
- </div>
13556
+ </div>
12759
13557
 
12760
13558
  </div>
12761
13559
 
@@ -12763,7 +13561,7 @@ as available choices.</p>
12763
13561
 
12764
13562
  </div>
12765
13563
 
12766
- </div>
13564
+ </div>
12767
13565
 
12768
13566
  </div>
12769
13567