nautobot 2.4.0b1__py3-none-any.whl → 2.4.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of nautobot might be problematic. Click here for more details.

Files changed (601) hide show
  1. nautobot/apps/__init__.py +1 -1
  2. nautobot/apps/api.py +8 -8
  3. nautobot/apps/change_logging.py +2 -2
  4. nautobot/apps/choices.py +4 -4
  5. nautobot/apps/events.py +3 -3
  6. nautobot/apps/factory.py +2 -2
  7. nautobot/apps/filters.py +1 -1
  8. nautobot/apps/forms.py +20 -20
  9. nautobot/apps/graphql.py +2 -2
  10. nautobot/apps/jobs.py +8 -8
  11. nautobot/apps/models.py +19 -19
  12. nautobot/apps/tables.py +1 -1
  13. nautobot/apps/testing.py +10 -10
  14. nautobot/apps/ui.py +2 -2
  15. nautobot/apps/utils.py +7 -7
  16. nautobot/apps/views.py +7 -7
  17. nautobot/circuits/api/serializers.py +1 -0
  18. nautobot/circuits/api/views.py +4 -8
  19. nautobot/circuits/tables.py +2 -1
  20. nautobot/circuits/templates/circuits/circuit_create.html +1 -7
  21. nautobot/circuits/views.py +3 -3
  22. nautobot/cloud/api/views.py +6 -10
  23. nautobot/cloud/models.py +1 -1
  24. nautobot/cloud/views.py +0 -16
  25. nautobot/core/api/constants.py +11 -0
  26. nautobot/core/api/fields.py +5 -5
  27. nautobot/core/api/filter_backends.py +3 -9
  28. nautobot/core/api/schema.py +13 -2
  29. nautobot/core/api/serializers.py +40 -34
  30. nautobot/core/api/views.py +56 -4
  31. nautobot/core/celery/log.py +4 -4
  32. nautobot/core/celery/schedulers.py +2 -2
  33. nautobot/core/choices.py +2 -2
  34. nautobot/core/events/__init__.py +3 -3
  35. nautobot/core/filters.py +67 -35
  36. nautobot/core/forms/__init__.py +19 -19
  37. nautobot/core/forms/fields.py +14 -11
  38. nautobot/core/forms/forms.py +33 -2
  39. nautobot/core/graphql/types.py +1 -1
  40. nautobot/core/jobs/__init__.py +28 -7
  41. nautobot/core/jobs/bulk_actions.py +285 -0
  42. nautobot/core/jobs/cleanup.py +48 -12
  43. nautobot/core/jobs/groups.py +1 -1
  44. nautobot/core/management/commands/validate_models.py +1 -1
  45. nautobot/core/models/__init__.py +3 -1
  46. nautobot/core/models/query_functions.py +2 -2
  47. nautobot/core/models/tree_queries.py +6 -3
  48. nautobot/core/settings.py +29 -2
  49. nautobot/core/settings.yaml +21 -0
  50. nautobot/core/tables.py +79 -61
  51. nautobot/core/templates/about.html +67 -0
  52. nautobot/core/templates/inc/media.html +3 -0
  53. nautobot/core/templates/inc/nav_menu.html +1 -0
  54. nautobot/core/templates/inc/tenancy_form_panel.html +9 -0
  55. nautobot/core/templates/inc/tenant_table_row.html +11 -0
  56. nautobot/core/templates/nautobot_config.py.j2 +13 -0
  57. nautobot/core/templates/search.html +7 -0
  58. nautobot/core/templates/utilities/render_jinja2.html +1 -1
  59. nautobot/core/templates/utilities/templatetags/tag.html +1 -1
  60. nautobot/core/templates/utilities/theme_preview.html +7 -0
  61. nautobot/core/templatetags/helpers.py +11 -2
  62. nautobot/core/testing/__init__.py +8 -8
  63. nautobot/core/testing/api.py +170 -15
  64. nautobot/core/testing/filters.py +45 -10
  65. nautobot/core/testing/forms.py +2 -0
  66. nautobot/core/testing/integration.py +86 -4
  67. nautobot/core/testing/mixins.py +7 -2
  68. nautobot/core/testing/views.py +44 -29
  69. nautobot/core/tests/integration/test_app_home.py +0 -1
  70. nautobot/core/tests/integration/test_app_navbar.py +0 -1
  71. nautobot/core/tests/integration/test_filters.py +0 -2
  72. nautobot/core/tests/integration/test_home.py +0 -1
  73. nautobot/core/tests/integration/test_navbar.py +0 -1
  74. nautobot/core/tests/integration/test_view_authentication.py +1 -0
  75. nautobot/core/tests/runner.py +1 -1
  76. nautobot/core/tests/test_api.py +98 -1
  77. nautobot/core/tests/test_csv.py +25 -3
  78. nautobot/core/tests/test_filters.py +209 -246
  79. nautobot/core/tests/test_forms.py +1 -0
  80. nautobot/core/tests/test_jobs.py +460 -1
  81. nautobot/core/tests/test_models.py +9 -0
  82. nautobot/core/tests/test_settings_schema.py +7 -0
  83. nautobot/core/tests/test_tables.py +100 -0
  84. nautobot/core/tests/test_utils.py +63 -1
  85. nautobot/core/tests/test_views.py +30 -3
  86. nautobot/core/ui/nav.py +1 -0
  87. nautobot/core/ui/object_detail.py +15 -1
  88. nautobot/core/urls.py +11 -0
  89. nautobot/core/utils/lookup.py +11 -8
  90. nautobot/core/utils/querysets.py +64 -0
  91. nautobot/core/utils/requests.py +24 -9
  92. nautobot/core/views/__init__.py +42 -0
  93. nautobot/core/views/generic.py +131 -197
  94. nautobot/core/views/mixins.py +126 -38
  95. nautobot/core/views/renderers.py +6 -6
  96. nautobot/dcim/api/serializers.py +56 -64
  97. nautobot/dcim/api/views.py +47 -113
  98. nautobot/dcim/constants.py +6 -13
  99. nautobot/dcim/factory.py +6 -1
  100. nautobot/dcim/filters/__init__.py +31 -2
  101. nautobot/dcim/forms.py +36 -17
  102. nautobot/dcim/graphql/types.py +2 -2
  103. nautobot/dcim/migrations/0067_controllermanageddevicegroup_tenant.py +25 -0
  104. nautobot/dcim/models/__init__.py +1 -1
  105. nautobot/dcim/models/device_component_templates.py +2 -2
  106. nautobot/dcim/models/device_components.py +22 -20
  107. nautobot/dcim/models/devices.py +10 -1
  108. nautobot/dcim/models/locations.py +3 -3
  109. nautobot/dcim/models/power.py +6 -5
  110. nautobot/dcim/models/racks.py +4 -4
  111. nautobot/dcim/tables/__init__.py +3 -3
  112. nautobot/dcim/tables/devices.py +7 -5
  113. nautobot/dcim/tables/devicetypes.py +2 -2
  114. nautobot/dcim/tables/racks.py +1 -1
  115. nautobot/dcim/templates/dcim/controller_create.html +1 -7
  116. nautobot/dcim/templates/dcim/controller_retrieve.html +1 -9
  117. nautobot/dcim/templates/dcim/controllermanageddevicegroup_create.html +2 -0
  118. nautobot/dcim/templates/dcim/controllermanageddevicegroup_retrieve.html +5 -0
  119. nautobot/dcim/templates/dcim/device.html +1 -9
  120. nautobot/dcim/templates/dcim/device_edit.html +36 -37
  121. nautobot/dcim/templates/dcim/location.html +1 -9
  122. nautobot/dcim/templates/dcim/location_edit.html +1 -7
  123. nautobot/dcim/templates/dcim/rack.html +1 -9
  124. nautobot/dcim/templates/dcim/rack_edit.html +1 -7
  125. nautobot/dcim/templates/dcim/rackreservation.html +1 -9
  126. nautobot/dcim/templates/dcim/virtualdevicecontext_retrieve.html +1 -9
  127. nautobot/dcim/templates/dcim/virtualdevicecontext_update.html +1 -7
  128. nautobot/dcim/tests/integration/test_controller.py +62 -0
  129. nautobot/dcim/tests/integration/test_controller_managed_device_group.py +71 -0
  130. nautobot/dcim/tests/integration/test_device_bulk_delete.py +189 -0
  131. nautobot/dcim/tests/integration/test_device_bulk_edit.py +181 -0
  132. nautobot/dcim/tests/test_api.py +16 -5
  133. nautobot/dcim/tests/test_filters.py +33 -0
  134. nautobot/dcim/tests/test_forms.py +51 -2
  135. nautobot/dcim/tests/test_graphql.py +52 -0
  136. nautobot/dcim/tests/test_jobs.py +118 -0
  137. nautobot/dcim/tests/test_models.py +52 -9
  138. nautobot/dcim/tests/test_views.py +21 -83
  139. nautobot/dcim/views.py +1 -13
  140. nautobot/extras/api/customfields.py +2 -2
  141. nautobot/extras/api/serializers.py +90 -85
  142. nautobot/extras/api/views.py +22 -27
  143. nautobot/extras/constants.py +2 -0
  144. nautobot/extras/filters/__init__.py +8 -6
  145. nautobot/extras/forms/base.py +2 -2
  146. nautobot/extras/forms/forms.py +139 -31
  147. nautobot/extras/forms/mixins.py +14 -6
  148. nautobot/extras/group_sync.py +3 -3
  149. nautobot/extras/health_checks.py +1 -2
  150. nautobot/extras/jobs.py +85 -18
  151. nautobot/extras/managers.py +3 -1
  152. nautobot/extras/migrations/0018_joblog_data_migration.py +7 -9
  153. nautobot/extras/migrations/0120_job_is_singleton_job_is_singleton_override.py +22 -0
  154. nautobot/extras/migrations/0121_alter_team_contacts.py +17 -0
  155. nautobot/extras/models/__init__.py +1 -1
  156. nautobot/extras/models/contacts.py +1 -1
  157. nautobot/extras/models/customfields.py +12 -11
  158. nautobot/extras/models/groups.py +11 -9
  159. nautobot/extras/models/jobs.py +23 -4
  160. nautobot/extras/models/models.py +2 -2
  161. nautobot/extras/plugins/__init__.py +13 -2
  162. nautobot/extras/plugins/marketplace_manifest.yml +84 -79
  163. nautobot/extras/plugins/tables.py +16 -14
  164. nautobot/extras/plugins/views.py +65 -69
  165. nautobot/extras/registry.py +1 -1
  166. nautobot/extras/secrets/__init__.py +2 -2
  167. nautobot/extras/tables.py +7 -5
  168. nautobot/extras/templates/extras/dynamicgroup.html +1 -9
  169. nautobot/extras/templates/extras/job_detail.html +16 -0
  170. nautobot/extras/templates/extras/job_edit.html +1 -0
  171. nautobot/extras/templates/extras/jobqueue_retrieve.html +1 -9
  172. nautobot/extras/templates/extras/marketplace.html +29 -11
  173. nautobot/extras/templates/extras/plugin_detail.html +32 -15
  174. nautobot/extras/templates/extras/plugins_tiles.html +21 -10
  175. nautobot/extras/templatetags/job_buttons.py +4 -4
  176. nautobot/extras/test_jobs/api_test_job.py +1 -1
  177. nautobot/extras/test_jobs/atomic_transaction.py +2 -2
  178. nautobot/extras/test_jobs/dry_run.py +1 -1
  179. nautobot/extras/test_jobs/fail.py +5 -5
  180. nautobot/extras/test_jobs/file_output.py +1 -1
  181. nautobot/extras/test_jobs/file_upload_fail.py +1 -1
  182. nautobot/extras/test_jobs/file_upload_pass.py +1 -1
  183. nautobot/extras/test_jobs/ipaddress_vars.py +3 -1
  184. nautobot/extras/test_jobs/jobs_module/jobs_submodule/jobs.py +1 -1
  185. nautobot/extras/test_jobs/location_with_custom_field.py +1 -1
  186. nautobot/extras/test_jobs/log_redaction.py +1 -1
  187. nautobot/extras/test_jobs/log_skip_db_logging.py +1 -1
  188. nautobot/extras/test_jobs/modify_db.py +1 -1
  189. nautobot/extras/test_jobs/object_var_optional.py +1 -1
  190. nautobot/extras/test_jobs/object_var_required.py +1 -1
  191. nautobot/extras/test_jobs/object_vars.py +1 -1
  192. nautobot/extras/test_jobs/pass.py +3 -3
  193. nautobot/extras/test_jobs/profiling.py +1 -1
  194. nautobot/extras/test_jobs/relative_import.py +3 -3
  195. nautobot/extras/test_jobs/singleton.py +16 -0
  196. nautobot/extras/test_jobs/soft_time_limit_greater_than_time_limit.py +1 -1
  197. nautobot/extras/test_jobs/task_queues.py +1 -1
  198. nautobot/extras/tests/integration/test_plugin_banner.py +0 -2
  199. nautobot/extras/tests/test_api.py +13 -13
  200. nautobot/extras/tests/test_customfields.py +1 -1
  201. nautobot/extras/tests/test_datasources.py +2 -1
  202. nautobot/extras/tests/test_dynamicgroups.py +1 -1
  203. nautobot/extras/tests/test_filters.py +6 -6
  204. nautobot/extras/tests/test_forms.py +33 -1
  205. nautobot/extras/tests/test_jobs.py +178 -32
  206. nautobot/extras/tests/test_models.py +16 -10
  207. nautobot/extras/tests/test_plugins.py +62 -9
  208. nautobot/extras/tests/test_relationships.py +120 -9
  209. nautobot/extras/tests/test_views.py +56 -194
  210. nautobot/extras/utils.py +3 -2
  211. nautobot/extras/views.py +30 -98
  212. nautobot/ipam/api/fields.py +3 -3
  213. nautobot/ipam/api/serializers.py +41 -33
  214. nautobot/ipam/api/views.py +68 -117
  215. nautobot/ipam/factory.py +1 -1
  216. nautobot/ipam/filters.py +3 -2
  217. nautobot/ipam/lookups.py +101 -62
  218. nautobot/ipam/models.py +66 -16
  219. nautobot/ipam/querysets.py +2 -2
  220. nautobot/ipam/tables.py +23 -7
  221. nautobot/ipam/templates/ipam/ipaddress.html +1 -9
  222. nautobot/ipam/templates/ipam/ipaddress_bulk_add.html +1 -7
  223. nautobot/ipam/templates/ipam/ipaddress_edit.html +1 -7
  224. nautobot/ipam/templates/ipam/prefix.html +1 -9
  225. nautobot/ipam/templates/ipam/prefix_edit.html +1 -7
  226. nautobot/ipam/templates/ipam/vlan.html +1 -9
  227. nautobot/ipam/templates/ipam/vlan_edit.html +1 -7
  228. nautobot/ipam/templates/ipam/vrf_edit.html +1 -7
  229. nautobot/ipam/tests/test_api.py +436 -3
  230. nautobot/ipam/tests/test_forms.py +49 -47
  231. nautobot/ipam/tests/test_migrations.py +30 -30
  232. nautobot/ipam/tests/test_models.py +95 -34
  233. nautobot/ipam/tests/test_querysets.py +63 -1
  234. nautobot/ipam/tests/test_views.py +3 -0
  235. nautobot/ipam/utils/__init__.py +36 -6
  236. nautobot/ipam/views.py +61 -87
  237. nautobot/project-static/bootstrap-3.4.1-dist/css/bootstrap-theme.css.map +1 -1
  238. nautobot/project-static/bootstrap-3.4.1-dist/css/bootstrap-theme.min.css.map +1 -1
  239. nautobot/project-static/bootstrap-3.4.1-dist/css/bootstrap.css +40 -2
  240. nautobot/project-static/bootstrap-3.4.1-dist/css/bootstrap.css.map +1 -1
  241. nautobot/project-static/bootstrap-3.4.1-dist/css/bootstrap.min.css +1 -1
  242. nautobot/project-static/bootstrap-3.4.1-dist/css/bootstrap.min.css.map +1 -1
  243. nautobot/project-static/docs/404.html +46 -4
  244. nautobot/project-static/docs/apps/index.html +46 -4
  245. nautobot/project-static/docs/apps/nautobot-apps.html +47 -6
  246. nautobot/project-static/docs/assets/_mkdocstrings.css +25 -1
  247. nautobot/project-static/docs/assets/javascripts/{bundle.83f73b43.min.js → bundle.88dd0f4e.min.js} +2 -2
  248. nautobot/project-static/docs/assets/javascripts/{bundle.83f73b43.min.js.map → bundle.88dd0f4e.min.js.map} +2 -2
  249. nautobot/project-static/docs/code-reference/nautobot/apps/__init__.html +62 -10
  250. nautobot/project-static/docs/code-reference/nautobot/apps/admin.html +59 -7
  251. nautobot/project-static/docs/code-reference/nautobot/apps/api.html +374 -122
  252. nautobot/project-static/docs/code-reference/nautobot/apps/change_logging.html +90 -18
  253. nautobot/project-static/docs/code-reference/nautobot/apps/choices.html +95 -21
  254. nautobot/project-static/docs/code-reference/nautobot/apps/config.html +53 -6
  255. nautobot/project-static/docs/code-reference/nautobot/apps/constants.html +52 -5
  256. nautobot/project-static/docs/code-reference/nautobot/apps/datasources.html +79 -17
  257. nautobot/project-static/docs/code-reference/nautobot/apps/events.html +102 -28
  258. nautobot/project-static/docs/code-reference/nautobot/apps/exceptions.html +108 -21
  259. nautobot/project-static/docs/code-reference/nautobot/apps/factory.html +131 -38
  260. nautobot/project-static/docs/code-reference/nautobot/apps/filters.html +239 -65
  261. nautobot/project-static/docs/code-reference/nautobot/apps/forms.html +581 -165
  262. nautobot/project-static/docs/code-reference/nautobot/apps/graphql.html +109 -36
  263. nautobot/project-static/docs/code-reference/nautobot/apps/jobs.html +453 -167
  264. nautobot/project-static/docs/code-reference/nautobot/apps/models.html +493 -211
  265. nautobot/project-static/docs/code-reference/nautobot/apps/querysets.html +60 -8
  266. nautobot/project-static/docs/code-reference/nautobot/apps/secrets.html +71 -15
  267. nautobot/project-static/docs/code-reference/nautobot/apps/tables.html +407 -55
  268. nautobot/project-static/docs/code-reference/nautobot/apps/testing.html +620 -205
  269. nautobot/project-static/docs/code-reference/nautobot/apps/ui.html +858 -412
  270. nautobot/project-static/docs/code-reference/nautobot/apps/urls.html +59 -7
  271. nautobot/project-static/docs/code-reference/nautobot/apps/utils.html +448 -186
  272. nautobot/project-static/docs/code-reference/nautobot/apps/views.html +365 -147
  273. nautobot/project-static/docs/development/apps/api/configuration-view.html +46 -4
  274. nautobot/project-static/docs/development/apps/api/database-backend-config.html +46 -4
  275. nautobot/project-static/docs/development/apps/api/models/django-admin.html +46 -4
  276. nautobot/project-static/docs/development/apps/api/models/global-search.html +46 -4
  277. nautobot/project-static/docs/development/apps/api/models/graphql.html +46 -4
  278. nautobot/project-static/docs/development/apps/api/models/index.html +46 -4
  279. nautobot/project-static/docs/development/apps/api/nautobot-app-config.html +46 -4
  280. nautobot/project-static/docs/development/apps/api/platform-features/custom-validators.html +46 -4
  281. nautobot/project-static/docs/development/apps/api/platform-features/filter-extensions.html +46 -4
  282. nautobot/project-static/docs/development/apps/api/platform-features/git-repository-content.html +46 -4
  283. nautobot/project-static/docs/development/apps/api/platform-features/index.html +46 -4
  284. nautobot/project-static/docs/development/apps/api/platform-features/jinja2-filters.html +46 -4
  285. nautobot/project-static/docs/development/apps/api/platform-features/jobs.html +46 -4
  286. nautobot/project-static/docs/development/apps/api/platform-features/populating-extensibility-features.html +46 -4
  287. nautobot/project-static/docs/development/apps/api/platform-features/secrets-providers.html +46 -4
  288. nautobot/project-static/docs/development/apps/api/platform-features/table-extensions.html +68 -7
  289. nautobot/project-static/docs/development/apps/api/platform-features/uniquely-identify-objects.html +46 -4
  290. nautobot/project-static/docs/development/apps/api/prometheus.html +46 -4
  291. nautobot/project-static/docs/development/apps/api/setup.html +46 -4
  292. nautobot/project-static/docs/development/apps/api/testing.html +46 -4
  293. nautobot/project-static/docs/development/apps/api/ui-extensions/banners.html +46 -4
  294. nautobot/project-static/docs/development/apps/api/ui-extensions/home-page.html +46 -4
  295. nautobot/project-static/docs/development/apps/api/ui-extensions/index.html +46 -4
  296. nautobot/project-static/docs/development/apps/api/ui-extensions/navigation.html +46 -4
  297. nautobot/project-static/docs/development/apps/api/ui-extensions/object-views.html +46 -4
  298. nautobot/project-static/docs/development/apps/api/views/base-template.html +46 -4
  299. nautobot/project-static/docs/development/apps/api/views/core-view-overrides.html +46 -4
  300. nautobot/project-static/docs/development/apps/api/views/django-generic-views.html +46 -4
  301. nautobot/project-static/docs/development/apps/api/views/help-documentation.html +46 -4
  302. nautobot/project-static/docs/development/apps/api/views/index.html +46 -4
  303. nautobot/project-static/docs/development/apps/api/views/nautobot-generic-views.html +46 -4
  304. nautobot/project-static/docs/development/apps/api/views/nautobotuiviewset.html +46 -4
  305. nautobot/project-static/docs/development/apps/api/views/nautobotuiviewsetrouter.html +46 -4
  306. nautobot/project-static/docs/development/apps/api/views/notes.html +46 -4
  307. nautobot/project-static/docs/development/apps/api/views/rest-api.html +52 -6
  308. nautobot/project-static/docs/development/apps/api/views/urls.html +46 -4
  309. nautobot/project-static/docs/development/apps/index.html +46 -4
  310. nautobot/project-static/docs/development/apps/migration/code-updates.html +46 -4
  311. nautobot/project-static/docs/development/apps/migration/dependency-updates.html +46 -4
  312. nautobot/project-static/docs/development/apps/migration/from-v1.html +46 -4
  313. nautobot/project-static/docs/development/apps/migration/model-updates/dcim.html +46 -4
  314. nautobot/project-static/docs/development/apps/migration/model-updates/extras.html +46 -4
  315. nautobot/project-static/docs/development/apps/migration/model-updates/global.html +46 -4
  316. nautobot/project-static/docs/development/apps/migration/model-updates/ipam.html +46 -4
  317. nautobot/project-static/docs/development/apps/migration/ui-component-framework/best-practices.html +50 -8
  318. nautobot/project-static/docs/development/apps/migration/ui-component-framework/custom-content.html +46 -4
  319. nautobot/project-static/docs/development/apps/migration/ui-component-framework/index.html +211 -14
  320. nautobot/project-static/docs/development/apps/migration/ui-component-framework/migration-steps.html +46 -4
  321. nautobot/project-static/docs/development/apps/porting-from-netbox.html +46 -4
  322. nautobot/project-static/docs/development/core/application-registry.html +46 -4
  323. nautobot/project-static/docs/development/core/best-practices.html +46 -4
  324. nautobot/project-static/docs/development/core/bootstrap-ui.html +46 -4
  325. nautobot/project-static/docs/development/core/caching.html +46 -4
  326. nautobot/project-static/docs/development/core/controllers.html +46 -4
  327. nautobot/project-static/docs/development/core/docker-compose-advanced-use-cases.html +73 -74
  328. nautobot/project-static/docs/development/core/generic-views.html +46 -4
  329. nautobot/project-static/docs/development/core/getting-started.html +249 -224
  330. nautobot/project-static/docs/development/core/homepage.html +49 -7
  331. nautobot/project-static/docs/development/core/index.html +46 -4
  332. nautobot/project-static/docs/development/core/{local-k8s.html → minikube-dev-environment-for-k8s-jobs.html} +469 -168
  333. nautobot/project-static/docs/development/core/model-checklist.html +56 -12
  334. nautobot/project-static/docs/development/core/model-features.html +46 -4
  335. nautobot/project-static/docs/development/core/natural-keys.html +46 -4
  336. nautobot/project-static/docs/development/core/navigation-menu.html +46 -4
  337. nautobot/project-static/docs/development/core/release-checklist.html +49 -7
  338. nautobot/project-static/docs/development/core/role-internals.html +46 -4
  339. nautobot/project-static/docs/development/core/settings.html +46 -4
  340. nautobot/project-static/docs/development/core/style-guide.html +49 -7
  341. nautobot/project-static/docs/development/core/templates.html +46 -4
  342. nautobot/project-static/docs/development/core/testing.html +46 -4
  343. nautobot/project-static/docs/development/core/ui-component-framework.html +369 -273
  344. nautobot/project-static/docs/development/core/user-preferences.html +46 -4
  345. nautobot/project-static/docs/development/index.html +46 -4
  346. nautobot/project-static/docs/development/jobs/index.html +216 -122
  347. nautobot/project-static/docs/development/jobs/migration/from-v1.html +46 -4
  348. nautobot/project-static/docs/index.html +54 -23
  349. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_edit.png +0 -0
  350. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_edit_button.png +0 -0
  351. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_list_nav.png +0 -0
  352. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_list_view.png +0 -0
  353. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_queue.png +0 -0
  354. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_queue_add.png +0 -0
  355. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_queue_config.png +0 -0
  356. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_result_completed.png +0 -0
  357. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_result_nav.png +0 -0
  358. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_result_pending.png +0 -0
  359. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_run_form.png +0 -0
  360. nautobot/project-static/docs/media/development/core/kubernetes/k8s_nautobot_login.png +0 -0
  361. nautobot/project-static/docs/media/development/core/kubernetes/k8s_run_job.png +0 -0
  362. nautobot/project-static/docs/media/development/core/kubernetes/k8s_run_scheduled_job_form.png +0 -0
  363. nautobot/project-static/docs/media/development/core/kubernetes/k8s_scheduled_job_result.png +0 -0
  364. nautobot/project-static/docs/media/development/core/ui-component-framework/buttons-example.png +0 -0
  365. nautobot/project-static/docs/media/development/core/ui-component-framework/cluster-type-before-after-example.png +0 -0
  366. nautobot/project-static/docs/media/development/core/ui-component-framework/object-fields-panel-example_2.png +0 -0
  367. nautobot/project-static/docs/media/development/core/ui-component-framework/stats-panel-example-code.png +0 -0
  368. nautobot/project-static/docs/objects.inv +0 -0
  369. nautobot/project-static/docs/overview/application_stack.html +47 -7
  370. nautobot/project-static/docs/overview/design_philosophy.html +46 -4
  371. nautobot/project-static/docs/release-notes/index.html +52 -12
  372. nautobot/project-static/docs/release-notes/version-1.0.html +234 -193
  373. nautobot/project-static/docs/release-notes/version-1.1.html +231 -190
  374. nautobot/project-static/docs/release-notes/version-1.2.html +306 -265
  375. nautobot/project-static/docs/release-notes/version-1.3.html +332 -291
  376. nautobot/project-static/docs/release-notes/version-1.4.html +417 -377
  377. nautobot/project-static/docs/release-notes/version-1.5.html +605 -566
  378. nautobot/project-static/docs/release-notes/version-1.6.html +904 -447
  379. nautobot/project-static/docs/release-notes/version-2.0.html +528 -489
  380. nautobot/project-static/docs/release-notes/version-2.1.html +363 -324
  381. nautobot/project-static/docs/release-notes/version-2.2.html +356 -317
  382. nautobot/project-static/docs/release-notes/version-2.3.html +997 -352
  383. nautobot/project-static/docs/release-notes/version-2.4.html +525 -101
  384. nautobot/project-static/docs/requirements.txt +2 -2
  385. nautobot/project-static/docs/search/search_index.json +1 -1
  386. nautobot/project-static/docs/sitemap.xml +295 -287
  387. nautobot/project-static/docs/sitemap.xml.gz +0 -0
  388. nautobot/project-static/docs/user-guide/administration/configuration/authentication/ldap.html +46 -4
  389. nautobot/project-static/docs/user-guide/administration/configuration/authentication/remote.html +46 -4
  390. nautobot/project-static/docs/user-guide/administration/configuration/authentication/sso.html +48 -6
  391. nautobot/project-static/docs/user-guide/administration/configuration/index.html +46 -4
  392. nautobot/project-static/docs/user-guide/administration/configuration/redis.html +46 -4
  393. nautobot/project-static/docs/user-guide/administration/configuration/settings.html +110 -8
  394. nautobot/project-static/docs/user-guide/administration/configuration/time-zones.html +46 -4
  395. nautobot/project-static/docs/user-guide/administration/guides/celery-queues.html +46 -4
  396. nautobot/project-static/docs/user-guide/administration/guides/docker.html +46 -4
  397. nautobot/project-static/docs/user-guide/administration/guides/health-checks.html +46 -4
  398. nautobot/project-static/docs/user-guide/administration/guides/permissions.html +46 -4
  399. nautobot/project-static/docs/user-guide/administration/guides/prometheus-metrics.html +46 -4
  400. nautobot/project-static/docs/user-guide/administration/guides/replicating-nautobot.html +46 -4
  401. nautobot/project-static/docs/user-guide/administration/guides/request-profiling.html +46 -4
  402. nautobot/project-static/docs/user-guide/administration/guides/s3-django-storage.html +48 -6
  403. nautobot/project-static/docs/user-guide/administration/guides/selinux-troubleshooting.html +46 -4
  404. nautobot/project-static/docs/user-guide/administration/installation/app-install.html +46 -4
  405. nautobot/project-static/docs/user-guide/administration/installation/external-authentication.html +46 -4
  406. nautobot/project-static/docs/user-guide/administration/installation/http-server.html +66 -8
  407. nautobot/project-static/docs/user-guide/administration/installation/index.html +46 -4
  408. nautobot/project-static/docs/user-guide/administration/installation/install_system.html +47 -5
  409. nautobot/project-static/docs/user-guide/administration/installation/nautobot.html +46 -4
  410. nautobot/project-static/docs/user-guide/administration/installation/services.html +46 -4
  411. nautobot/project-static/docs/user-guide/administration/migration/migrating-from-netbox.html +46 -4
  412. nautobot/project-static/docs/user-guide/administration/migration/migrating-from-postgresql.html +46 -4
  413. nautobot/project-static/docs/user-guide/administration/tools/nautobot-server.html +46 -4
  414. nautobot/project-static/docs/user-guide/administration/tools/nautobot-shell.html +46 -4
  415. nautobot/project-static/docs/user-guide/administration/upgrading/database-backup.html +46 -4
  416. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/after-you-upgrade.html +46 -4
  417. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/before-you-upgrade.html +46 -4
  418. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/for-developers.html +46 -4
  419. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/index.html +46 -4
  420. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/whats-changed.html +49 -8
  421. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/region-and-site-data-migration-guide.html +46 -4
  422. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/upgrading-from-nautobot-v1.html +46 -4
  423. nautobot/project-static/docs/user-guide/administration/upgrading/upgrading.html +46 -4
  424. nautobot/project-static/docs/user-guide/core-data-model/circuits/circuit.html +46 -4
  425. nautobot/project-static/docs/user-guide/core-data-model/circuits/circuittermination.html +46 -4
  426. nautobot/project-static/docs/user-guide/core-data-model/circuits/circuittype.html +46 -4
  427. nautobot/project-static/docs/user-guide/core-data-model/circuits/provider.html +46 -4
  428. nautobot/project-static/docs/user-guide/core-data-model/circuits/providernetwork.html +46 -4
  429. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloud.html +46 -4
  430. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudaccount.html +46 -4
  431. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudnetwork.html +46 -4
  432. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudnetworkprefixassignment.html +46 -4
  433. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudresourcetype.html +46 -4
  434. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudservice.html +46 -4
  435. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudservicenetworkassignment.html +46 -4
  436. nautobot/project-static/docs/user-guide/core-data-model/dcim/cable.html +46 -4
  437. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleport.html +46 -4
  438. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleporttemplate.html +46 -4
  439. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleserverport.html +46 -4
  440. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleserverporttemplate.html +46 -4
  441. nautobot/project-static/docs/user-guide/core-data-model/dcim/controller.html +46 -4
  442. nautobot/project-static/docs/user-guide/core-data-model/dcim/controllermanageddevicegroup.html +46 -4
  443. nautobot/project-static/docs/user-guide/core-data-model/dcim/device.html +46 -4
  444. nautobot/project-static/docs/user-guide/core-data-model/dcim/devicebay.html +46 -4
  445. nautobot/project-static/docs/user-guide/core-data-model/dcim/devicebaytemplate.html +46 -4
  446. nautobot/project-static/docs/user-guide/core-data-model/dcim/devicefamily.html +46 -4
  447. nautobot/project-static/docs/user-guide/core-data-model/dcim/deviceredundancygroup.html +46 -4
  448. nautobot/project-static/docs/user-guide/core-data-model/dcim/devicetype.html +46 -4
  449. nautobot/project-static/docs/user-guide/core-data-model/dcim/frontport.html +46 -4
  450. nautobot/project-static/docs/user-guide/core-data-model/dcim/frontporttemplate.html +46 -4
  451. nautobot/project-static/docs/user-guide/core-data-model/dcim/interface.html +46 -4
  452. nautobot/project-static/docs/user-guide/core-data-model/dcim/interfaceredundancygroup.html +46 -4
  453. nautobot/project-static/docs/user-guide/core-data-model/dcim/interfacetemplate.html +46 -4
  454. nautobot/project-static/docs/user-guide/core-data-model/dcim/inventoryitem.html +46 -4
  455. nautobot/project-static/docs/user-guide/core-data-model/dcim/location.html +46 -4
  456. nautobot/project-static/docs/user-guide/core-data-model/dcim/locationtype.html +46 -4
  457. nautobot/project-static/docs/user-guide/core-data-model/dcim/manufacturer.html +46 -4
  458. nautobot/project-static/docs/user-guide/core-data-model/dcim/module.html +46 -4
  459. nautobot/project-static/docs/user-guide/core-data-model/dcim/modulebay.html +46 -4
  460. nautobot/project-static/docs/user-guide/core-data-model/dcim/modulebaytemplate.html +46 -4
  461. nautobot/project-static/docs/user-guide/core-data-model/dcim/moduletype.html +46 -4
  462. nautobot/project-static/docs/user-guide/core-data-model/dcim/platform.html +46 -4
  463. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerfeed.html +46 -4
  464. nautobot/project-static/docs/user-guide/core-data-model/dcim/poweroutlet.html +46 -4
  465. nautobot/project-static/docs/user-guide/core-data-model/dcim/poweroutlettemplate.html +46 -4
  466. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerpanel.html +46 -4
  467. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerport.html +46 -4
  468. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerporttemplate.html +46 -4
  469. nautobot/project-static/docs/user-guide/core-data-model/dcim/rack.html +46 -4
  470. nautobot/project-static/docs/user-guide/core-data-model/dcim/rackgroup.html +46 -4
  471. nautobot/project-static/docs/user-guide/core-data-model/dcim/rackreservation.html +46 -4
  472. nautobot/project-static/docs/user-guide/core-data-model/dcim/rearport.html +46 -4
  473. nautobot/project-static/docs/user-guide/core-data-model/dcim/rearporttemplate.html +46 -4
  474. nautobot/project-static/docs/user-guide/core-data-model/dcim/softwareimagefile.html +46 -4
  475. nautobot/project-static/docs/user-guide/core-data-model/dcim/softwareversion.html +46 -4
  476. nautobot/project-static/docs/user-guide/core-data-model/dcim/virtualchassis.html +46 -4
  477. nautobot/project-static/docs/user-guide/core-data-model/dcim/virtualdevicecontext.html +46 -4
  478. nautobot/project-static/docs/user-guide/core-data-model/extras/configcontext.html +50 -12
  479. nautobot/project-static/docs/user-guide/core-data-model/extras/configcontextschema.html +46 -4
  480. nautobot/project-static/docs/user-guide/core-data-model/extras/contact.html +46 -4
  481. nautobot/project-static/docs/user-guide/core-data-model/extras/team.html +46 -4
  482. nautobot/project-static/docs/user-guide/core-data-model/ipam/ipaddress.html +46 -4
  483. nautobot/project-static/docs/user-guide/core-data-model/ipam/namespace.html +46 -4
  484. nautobot/project-static/docs/user-guide/core-data-model/ipam/prefix.html +46 -4
  485. nautobot/project-static/docs/user-guide/core-data-model/ipam/rir.html +46 -4
  486. nautobot/project-static/docs/user-guide/core-data-model/ipam/routetarget.html +46 -4
  487. nautobot/project-static/docs/user-guide/core-data-model/ipam/service.html +46 -4
  488. nautobot/project-static/docs/user-guide/core-data-model/ipam/vlan.html +46 -4
  489. nautobot/project-static/docs/user-guide/core-data-model/ipam/vlangroup.html +46 -4
  490. nautobot/project-static/docs/user-guide/core-data-model/ipam/vrf.html +46 -4
  491. nautobot/project-static/docs/user-guide/core-data-model/overview/introduction.html +49 -7
  492. nautobot/project-static/docs/user-guide/core-data-model/tenancy/tenant.html +46 -4
  493. nautobot/project-static/docs/user-guide/core-data-model/tenancy/tenantgroup.html +46 -4
  494. nautobot/project-static/docs/user-guide/core-data-model/virtualization/cluster.html +46 -4
  495. nautobot/project-static/docs/user-guide/core-data-model/virtualization/clustergroup.html +46 -4
  496. nautobot/project-static/docs/user-guide/core-data-model/virtualization/clustertype.html +46 -4
  497. nautobot/project-static/docs/user-guide/core-data-model/virtualization/virtualmachine.html +46 -4
  498. nautobot/project-static/docs/user-guide/core-data-model/virtualization/vminterface.html +46 -4
  499. nautobot/project-static/docs/user-guide/core-data-model/wireless/index.html +46 -4
  500. nautobot/project-static/docs/user-guide/core-data-model/wireless/radioprofile.html +46 -4
  501. nautobot/project-static/docs/user-guide/core-data-model/wireless/supporteddatarate.html +46 -4
  502. nautobot/project-static/docs/user-guide/core-data-model/wireless/wirelessnetwork.html +46 -4
  503. nautobot/project-static/docs/user-guide/feature-guides/contacts-and-teams.html +46 -4
  504. nautobot/project-static/docs/user-guide/feature-guides/custom-fields.html +46 -4
  505. nautobot/project-static/docs/user-guide/feature-guides/getting-started/creating-devices.html +46 -4
  506. nautobot/project-static/docs/user-guide/feature-guides/getting-started/creating-location-types-and-locations.html +46 -4
  507. nautobot/project-static/docs/user-guide/feature-guides/getting-started/index.html +46 -4
  508. nautobot/project-static/docs/user-guide/feature-guides/getting-started/interfaces.html +46 -4
  509. nautobot/project-static/docs/user-guide/feature-guides/getting-started/ipam.html +46 -4
  510. nautobot/project-static/docs/user-guide/feature-guides/getting-started/platforms.html +46 -4
  511. nautobot/project-static/docs/user-guide/feature-guides/getting-started/search-bar.html +46 -4
  512. nautobot/project-static/docs/user-guide/feature-guides/getting-started/tenants.html +46 -4
  513. nautobot/project-static/docs/user-guide/feature-guides/getting-started/vlans-and-vlan-groups.html +46 -4
  514. nautobot/project-static/docs/user-guide/feature-guides/git-data-source.html +51 -7
  515. nautobot/project-static/docs/user-guide/feature-guides/graphql.html +46 -4
  516. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/central-mode.png +0 -0
  517. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/device-group-add.png +0 -0
  518. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/device-group-create-1.png +0 -0
  519. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/device-group-create-2.png +0 -0
  520. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/radio-profile-add.png +0 -0
  521. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/radio-profile-create.png +0 -0
  522. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/supported-data-rate-add.png +0 -0
  523. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/supported-data-rate-create.png +0 -0
  524. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/wireless-controller-add.png +0 -0
  525. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/wireless-controller-create-1.png +0 -0
  526. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/wireless-controller-create-2.png +0 -0
  527. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/wireless-network-add.png +0 -0
  528. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/wireless-network-create.png +0 -0
  529. nautobot/project-static/docs/user-guide/feature-guides/ip-address-merge-tool.html +46 -4
  530. nautobot/project-static/docs/user-guide/feature-guides/relationships.html +46 -4
  531. nautobot/project-static/docs/user-guide/feature-guides/software-image-files-and-versions.html +49 -7
  532. nautobot/project-static/docs/user-guide/feature-guides/wireless-networks-and-controllers.html +9444 -0
  533. nautobot/project-static/docs/user-guide/index.html +46 -4
  534. nautobot/project-static/docs/user-guide/platform-functionality/change-logging.html +46 -4
  535. nautobot/project-static/docs/user-guide/platform-functionality/computedfield.html +50 -8
  536. nautobot/project-static/docs/user-guide/platform-functionality/customfield.html +46 -4
  537. nautobot/project-static/docs/user-guide/platform-functionality/customlink.html +46 -4
  538. nautobot/project-static/docs/user-guide/platform-functionality/dynamicgroup.html +46 -4
  539. nautobot/project-static/docs/user-guide/platform-functionality/events.html +46 -4
  540. nautobot/project-static/docs/user-guide/platform-functionality/exporttemplate.html +46 -4
  541. nautobot/project-static/docs/user-guide/platform-functionality/externalintegration.html +46 -4
  542. nautobot/project-static/docs/user-guide/platform-functionality/gitrepository.html +46 -4
  543. nautobot/project-static/docs/user-guide/platform-functionality/graphql.html +46 -4
  544. nautobot/project-static/docs/user-guide/platform-functionality/graphqlquery.html +46 -4
  545. nautobot/project-static/docs/user-guide/platform-functionality/imageattachment.html +46 -4
  546. nautobot/project-static/docs/user-guide/platform-functionality/jobs/index.html +50 -7
  547. nautobot/project-static/docs/user-guide/platform-functionality/jobs/job-scheduling-and-approvals.html +46 -4
  548. nautobot/project-static/docs/user-guide/platform-functionality/jobs/jobbutton.html +49 -7
  549. nautobot/project-static/docs/user-guide/platform-functionality/jobs/jobhook.html +46 -4
  550. nautobot/project-static/docs/user-guide/platform-functionality/jobs/jobqueue.html +46 -4
  551. nautobot/project-static/docs/user-guide/platform-functionality/jobs/kubernetes-job-support.html +9722 -0
  552. nautobot/project-static/docs/user-guide/platform-functionality/jobs/models.html +46 -4
  553. nautobot/project-static/docs/user-guide/platform-functionality/napalm.html +46 -4
  554. nautobot/project-static/docs/user-guide/platform-functionality/note.html +46 -4
  555. nautobot/project-static/docs/user-guide/platform-functionality/objectmetadata.html +46 -4
  556. nautobot/project-static/docs/user-guide/platform-functionality/relationship.html +47 -5
  557. nautobot/project-static/docs/user-guide/platform-functionality/rendering-jinja-templates.html +46 -4
  558. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/authentication.html +46 -4
  559. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/filtering.html +94 -25
  560. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/overview.html +74 -5
  561. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/ui-related-endpoints.html +46 -4
  562. nautobot/project-static/docs/user-guide/platform-functionality/role.html +46 -4
  563. nautobot/project-static/docs/user-guide/platform-functionality/savedview.html +46 -4
  564. nautobot/project-static/docs/user-guide/platform-functionality/secret.html +46 -4
  565. nautobot/project-static/docs/user-guide/platform-functionality/staticgroupassociation.html +46 -4
  566. nautobot/project-static/docs/user-guide/platform-functionality/status.html +46 -4
  567. nautobot/project-static/docs/user-guide/platform-functionality/tag.html +46 -4
  568. nautobot/project-static/docs/user-guide/platform-functionality/template-filters.html +46 -4
  569. nautobot/project-static/docs/user-guide/platform-functionality/users/objectpermission.html +46 -4
  570. nautobot/project-static/docs/user-guide/platform-functionality/users/token.html +46 -4
  571. nautobot/project-static/docs/user-guide/platform-functionality/webhook.html +46 -4
  572. nautobot/project-static/js/forms.js +1 -1
  573. nautobot/tenancy/api/views.py +9 -13
  574. nautobot/tenancy/views.py +4 -2
  575. nautobot/users/admin.py +1 -1
  576. nautobot/users/api/serializers.py +5 -4
  577. nautobot/users/api/views.py +3 -3
  578. nautobot/virtualization/api/serializers.py +4 -4
  579. nautobot/virtualization/api/views.py +5 -24
  580. nautobot/virtualization/filters.py +20 -3
  581. nautobot/virtualization/models.py +1 -1
  582. nautobot/virtualization/tables.py +2 -2
  583. nautobot/virtualization/templates/virtualization/cluster_edit.html +1 -7
  584. nautobot/virtualization/templates/virtualization/virtualmachine.html +1 -9
  585. nautobot/virtualization/templates/virtualization/virtualmachine_edit.html +2 -8
  586. nautobot/virtualization/tests/test_filters.py +17 -0
  587. nautobot/wireless/filters.py +2 -2
  588. nautobot/wireless/forms.py +1 -1
  589. nautobot/wireless/templates/wireless/wirelessnetwork_retrieve.html +1 -9
  590. nautobot/wireless/tests/integration/__init__.py +0 -0
  591. nautobot/wireless/tests/integration/test_radio_profile.py +42 -0
  592. nautobot/wireless/tests/test_filters.py +29 -1
  593. nautobot/wireless/tests/test_views.py +22 -1
  594. nautobot/wireless/views.py +0 -10
  595. {nautobot-2.4.0b1.dist-info → nautobot-2.4.1.dist-info}/METADATA +6 -6
  596. {nautobot-2.4.0b1.dist-info → nautobot-2.4.1.dist-info}/RECORD +600 -550
  597. {nautobot-2.4.0b1.dist-info → nautobot-2.4.1.dist-info}/WHEEL +1 -1
  598. nautobot/core/fixtures/user-data.json +0 -59
  599. {nautobot-2.4.0b1.dist-info → nautobot-2.4.1.dist-info}/LICENSE.txt +0 -0
  600. {nautobot-2.4.0b1.dist-info → nautobot-2.4.1.dist-info}/NOTICE +0 -0
  601. {nautobot-2.4.0b1.dist-info → nautobot-2.4.1.dist-info}/entry_points.txt +0 -0
@@ -18,7 +18,7 @@
18
18
 
19
19
 
20
20
  <link rel="icon" href="../../../assets/favicon.ico">
21
- <meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.46">
21
+ <meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.49">
22
22
 
23
23
 
24
24
 
@@ -2112,6 +2112,27 @@
2112
2112
 
2113
2113
 
2114
2114
 
2115
+
2116
+
2117
+
2118
+
2119
+
2120
+
2121
+ <li class="md-nav__item">
2122
+ <a href="../../../user-guide/feature-guides/wireless-networks-and-controllers.html" class="md-nav__link">
2123
+
2124
+
2125
+ <span class="md-ellipsis">
2126
+ Wireless Networks and Controllers
2127
+ </span>
2128
+
2129
+
2130
+ </a>
2131
+ </li>
2132
+
2133
+
2134
+
2135
+
2115
2136
  </ul>
2116
2137
  </nav>
2117
2138
 
@@ -5131,6 +5152,27 @@
5131
5152
 
5132
5153
 
5133
5154
 
5155
+ <li class="md-nav__item">
5156
+ <a href="../../../user-guide/platform-functionality/jobs/kubernetes-job-support.html" class="md-nav__link">
5157
+
5158
+
5159
+ <span class="md-ellipsis">
5160
+ Kubernetes Job Support
5161
+ </span>
5162
+
5163
+
5164
+ </a>
5165
+ </li>
5166
+
5167
+
5168
+
5169
+
5170
+
5171
+
5172
+
5173
+
5174
+
5175
+
5134
5176
  <li class="md-nav__item">
5135
5177
  <a href="../../../user-guide/platform-functionality/jobs/jobbutton.html" class="md-nav__link">
5136
5178
 
@@ -8815,11 +8857,11 @@
8815
8857
 
8816
8858
 
8817
8859
  <li class="md-nav__item">
8818
- <a href="../../../development/core/local-k8s.html" class="md-nav__link">
8860
+ <a href="../../../development/core/minikube-dev-environment-for-k8s-jobs.html" class="md-nav__link">
8819
8861
 
8820
8862
 
8821
8863
  <span class="md-ellipsis">
8822
- Local Kubernetes Cluster
8864
+ Minikube Dev Environment for K8s Jobs
8823
8865
  </span>
8824
8866
 
8825
8867
 
@@ -10476,7 +10518,12 @@
10476
10518
 
10477
10519
  <div class="doc doc-contents first">
10478
10520
 
10479
- <p>Nautobot utility functions.</p>
10521
+ <p>Nautobot utility functions.</p>
10522
+
10523
+
10524
+
10525
+
10526
+
10480
10527
 
10481
10528
 
10482
10529
 
@@ -10502,10 +10549,15 @@
10502
10549
 
10503
10550
  <div class="doc doc-contents ">
10504
10551
  <p class="doc doc-class-bases">
10505
- Bases: <code><autoref identifier="nautobot.extras.utils.FeaturedQueryMixin" optional hover>FeaturedQueryMixin</autoref></code></p>
10552
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.extras.utils.FeaturedQueryMixin" href="#nautobot.apps.utils.FeaturedQueryMixin">FeaturedQueryMixin</a></code></p>
10553
+
10554
+
10555
+ <p>Helper class to get ContentType for models that implements the to_objectchange method for change logging.</p>
10556
+
10557
+
10558
+
10506
10559
 
10507
10560
 
10508
- <p>Helper class to get ContentType for models that implements the to_objectchange method for change logging.</p>
10509
10561
 
10510
10562
 
10511
10563
 
@@ -10531,7 +10583,7 @@
10531
10583
 
10532
10584
  <div class="doc doc-contents ">
10533
10585
 
10534
- <p>Return a list of classes that implement the to_objectchange method</p>
10586
+ <p>Return a list of classes that implement the to_objectchange method</p>
10535
10587
 
10536
10588
  </div>
10537
10589
 
@@ -10559,12 +10611,17 @@
10559
10611
  <div class="doc doc-contents ">
10560
10612
 
10561
10613
 
10562
- <p>Helper class that delays evaluation of the registry contents for the functionality store
10614
+ <p>Helper class that delays evaluation of the registry contents for the functionality store
10563
10615
  until it has been populated.</p>
10564
10616
 
10565
10617
 
10566
10618
 
10567
10619
 
10620
+
10621
+
10622
+
10623
+
10624
+
10568
10625
  <div class="doc doc-children">
10569
10626
 
10570
10627
 
@@ -10586,7 +10643,7 @@ until it has been populated.</p>
10586
10643
 
10587
10644
  <div class="doc doc-contents ">
10588
10645
 
10589
- <p>Given an extras feature, return a iterable of app_label: [models] for content type lookup.</p>
10646
+ <p>Given an extras feature, return a iterable of app_label: [models] for content type lookup.</p>
10590
10647
  <p>Misnamed, as it returns an iterable of (key, value) (i.e. dict.items()) rather than an actual dict.</p>
10591
10648
  <p>Raises a KeyError if the given feature doesn't exist.</p>
10592
10649
 
@@ -10605,7 +10662,7 @@ until it has been populated.</p>
10605
10662
 
10606
10663
  <div class="doc doc-contents ">
10607
10664
 
10608
- <p>Given an extras feature, return a list of 2-tuple of <code>(model_label, pk)</code>
10665
+ <p>Given an extras feature, return a list of 2-tuple of <code>(model_label, pk)</code>
10609
10666
  suitable for use as <code>choices</code> on a choice field:</p>
10610
10667
  <div class="highlight"><pre><span></span><code>&gt;&gt;&gt; FeatureQuery(&#39;statuses&#39;).get_choices()
10611
10668
  [(&#39;dcim.device&#39;, 13), (&#39;dcim.rack&#39;, 34)]
@@ -10627,7 +10684,7 @@ suitable for use as <code>choices</code> on a choice field:</p>
10627
10684
 
10628
10685
  <div class="doc doc-contents ">
10629
10686
 
10630
- <p>Given an extras feature, return a Q object for content type lookup</p>
10687
+ <p>Given an extras feature, return a Q object for content type lookup</p>
10631
10688
 
10632
10689
  </div>
10633
10690
 
@@ -10644,7 +10701,7 @@ suitable for use as <code>choices</code> on a choice field:</p>
10644
10701
 
10645
10702
  <div class="doc doc-contents ">
10646
10703
 
10647
- <p>Return a list of model classes that declare this feature.</p>
10704
+ <p>Return a list of model classes that declare this feature.</p>
10648
10705
  <p>Cache is cleared by post_migrate signal (nautobot.extras.signals.post_migrate_clear_content_type_caches).</p>
10649
10706
 
10650
10707
  </div>
@@ -10673,7 +10730,12 @@ suitable for use as <code>choices</code> on a choice field:</p>
10673
10730
  <div class="doc doc-contents ">
10674
10731
 
10675
10732
 
10676
- <p>Mixin class that gets a list of featured models.</p>
10733
+ <p>Mixin class that gets a list of featured models.</p>
10734
+
10735
+
10736
+
10737
+
10738
+
10677
10739
 
10678
10740
 
10679
10741
 
@@ -10699,7 +10761,7 @@ suitable for use as <code>choices</code> on a choice field:</p>
10699
10761
 
10700
10762
  <div class="doc doc-contents ">
10701
10763
 
10702
- <p>Given an extras feature, return a Q object for content type lookup</p>
10764
+ <p>Given an extras feature, return a Q object for content type lookup</p>
10703
10765
 
10704
10766
  </div>
10705
10767
 
@@ -10716,7 +10778,7 @@ suitable for use as <code>choices</code> on a choice field:</p>
10716
10778
 
10717
10779
  <div class="doc doc-contents ">
10718
10780
 
10719
- <p>Return a list of classes that has implements this <code>name</code>.</p>
10781
+ <p>Return a list of classes that has implements this <code>name</code>.</p>
10720
10782
 
10721
10783
  </div>
10722
10784
 
@@ -10747,6 +10809,11 @@ suitable for use as <code>choices</code> on a choice field:</p>
10747
10809
 
10748
10810
 
10749
10811
 
10812
+
10813
+
10814
+
10815
+
10816
+
10750
10817
  <div class="doc doc-children">
10751
10818
 
10752
10819
 
@@ -10771,7 +10838,7 @@ suitable for use as <code>choices</code> on a choice field:</p>
10771
10838
 
10772
10839
  <div class="doc doc-contents ">
10773
10840
 
10774
- <p>Current checked out repository head commit.</p>
10841
+ <p>Current checked out repository head commit.</p>
10775
10842
  </div>
10776
10843
 
10777
10844
  </div>
@@ -10789,7 +10856,7 @@ suitable for use as <code>choices</code> on a choice field:</p>
10789
10856
 
10790
10857
  <div class="doc doc-contents ">
10791
10858
 
10792
- <p>Ensure that we have a clone of the given remote Git repository URL at the given local directory path.</p>
10859
+ <p>Ensure that we have a clone of the given remote Git repository URL at the given local directory path.</p>
10793
10860
 
10794
10861
 
10795
10862
  <p><span class="doc-section-title">Parameters:</span></p>
@@ -10804,9 +10871,11 @@ suitable for use as <code>choices</code> on a choice field:</p>
10804
10871
  </thead>
10805
10872
  <tbody>
10806
10873
  <tr class="doc-section-item">
10807
- <td><code>path</code></td>
10808
10874
  <td>
10809
- <code><autoref identifier="str" optional>str</autoref></code>
10875
+ <code>path</code>
10876
+ </td>
10877
+ <td>
10878
+ <code>str</code>
10810
10879
  </td>
10811
10880
  <td>
10812
10881
  <div class="doc-md-description">
@@ -10818,9 +10887,11 @@ suitable for use as <code>choices</code> on a choice field:</p>
10818
10887
  </td>
10819
10888
  </tr>
10820
10889
  <tr class="doc-section-item">
10821
- <td><code>url</code></td>
10822
10890
  <td>
10823
- <code><autoref identifier="str" optional>str</autoref></code>
10891
+ <code>url</code>
10892
+ </td>
10893
+ <td>
10894
+ <code>str</code>
10824
10895
  </td>
10825
10896
  <td>
10826
10897
  <div class="doc-md-description">
@@ -10832,9 +10903,11 @@ suitable for use as <code>choices</code> on a choice field:</p>
10832
10903
  </td>
10833
10904
  </tr>
10834
10905
  <tr class="doc-section-item">
10835
- <td><code>clone_initially</code></td>
10836
10906
  <td>
10837
- <code><autoref identifier="bool" optional>bool</autoref></code>
10907
+ <code>clone_initially</code>
10908
+ </td>
10909
+ <td>
10910
+ <code>bool</code>
10838
10911
  </td>
10839
10912
  <td>
10840
10913
  <div class="doc-md-description">
@@ -10863,7 +10936,7 @@ suitable for use as <code>choices</code> on a choice field:</p>
10863
10936
 
10864
10937
  <div class="doc doc-contents ">
10865
10938
 
10866
- <p>Check out the given branch, and optionally the specified commit within that branch.</p>
10939
+ <p>Check out the given branch, and optionally the specified commit within that branch.</p>
10867
10940
 
10868
10941
 
10869
10942
  <p><span class="doc-section-title">Parameters:</span></p>
@@ -10878,9 +10951,11 @@ suitable for use as <code>choices</code> on a choice field:</p>
10878
10951
  </thead>
10879
10952
  <tbody>
10880
10953
  <tr class="doc-section-item">
10881
- <td><code>branch</code></td>
10882
10954
  <td>
10883
- <code><autoref identifier="str" optional>str</autoref></code>
10955
+ <code>branch</code>
10956
+ </td>
10957
+ <td>
10958
+ <code>str</code>
10884
10959
  </td>
10885
10960
  <td>
10886
10961
  <div class="doc-md-description">
@@ -10892,9 +10967,11 @@ suitable for use as <code>choices</code> on a choice field:</p>
10892
10967
  </td>
10893
10968
  </tr>
10894
10969
  <tr class="doc-section-item">
10895
- <td><code>commit_hexsha</code></td>
10896
10970
  <td>
10897
- <code><autoref identifier="str" optional>str</autoref></code>
10971
+ <code>commit_hexsha</code>
10972
+ </td>
10973
+ <td>
10974
+ <code>str</code>
10898
10975
  </td>
10899
10976
  <td>
10900
10977
  <div class="doc-md-description">
@@ -10907,7 +10984,7 @@ suitable for use as <code>choices</code> on a choice field:</p>
10907
10984
  </tr>
10908
10985
  </tbody>
10909
10986
  </table>
10910
- <p>If <code>commit_hexsha</code> is specified and <code>branch</code> is either a tag or a commit identifier, they must match.
10987
+ <p>If <code>commit_hexsha</code> is specified and <code>branch</code> is either a tag or a commit identifier, they must match.
10911
10988
  If <code>commit_hexsha</code> is specified and <code>branch</code> is a branch name, it must contain the specified commit.</p>
10912
10989
 
10913
10990
 
@@ -10922,7 +10999,7 @@ If <code>commit_hexsha</code> is specified and <code>branch</code> is a branch n
10922
10999
  <tbody>
10923
11000
  <tr class="doc-section-item">
10924
11001
  <td>
10925
- <code>(<autoref identifier="str" optional>str</autoref>, <autoref identifier="bool" optional>bool</autoref>)</code>
11002
+ <code>(str, bool)</code>
10926
11003
  </td>
10927
11004
  <td>
10928
11005
  <div class="doc-md-description">
@@ -10958,10 +11035,15 @@ If <code>commit_hexsha</code> is specified and <code>branch</code> is a branch n
10958
11035
 
10959
11036
  <div class="doc doc-contents ">
10960
11037
  <p class="doc doc-class-bases">
10961
- Bases: <code><autoref identifier="nautobot.extras.utils.FeaturedQueryMixin" optional hover>FeaturedQueryMixin</autoref></code></p>
11038
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.extras.utils.FeaturedQueryMixin" href="#nautobot.apps.utils.FeaturedQueryMixin">FeaturedQueryMixin</a></code></p>
11039
+
11040
+
11041
+ <p>Helper class to get ContentType models that implements role.</p>
11042
+
11043
+
11044
+
10962
11045
 
10963
11046
 
10964
- <p>Helper class to get ContentType models that implements role.</p>
10965
11047
 
10966
11048
 
10967
11049
 
@@ -10987,7 +11069,7 @@ If <code>commit_hexsha</code> is specified and <code>branch</code> is a branch n
10987
11069
 
10988
11070
  <div class="doc doc-contents ">
10989
11071
 
10990
- <p>Return a list of classes that implements roles e.g roles = ...</p>
11072
+ <p>Return a list of classes that implements roles e.g roles = ...</p>
10991
11073
 
10992
11074
  </div>
10993
11075
 
@@ -11014,10 +11096,15 @@ If <code>commit_hexsha</code> is specified and <code>branch</code> is a branch n
11014
11096
 
11015
11097
  <div class="doc doc-contents ">
11016
11098
  <p class="doc doc-class-bases">
11017
- Bases: <code><autoref identifier="nautobot.extras.utils.FeaturedQueryMixin" optional hover>FeaturedQueryMixin</autoref></code></p>
11099
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.extras.utils.FeaturedQueryMixin" href="#nautobot.apps.utils.FeaturedQueryMixin">FeaturedQueryMixin</a></code></p>
11100
+
11101
+
11102
+ <p>Helper class to get ContentType models that implements tags(TagsField)</p>
11103
+
11104
+
11105
+
11018
11106
 
11019
11107
 
11020
- <p>Helper class to get ContentType models that implements tags(TagsField)</p>
11021
11108
 
11022
11109
 
11023
11110
 
@@ -11043,7 +11130,7 @@ If <code>commit_hexsha</code> is specified and <code>branch</code> is a branch n
11043
11130
 
11044
11131
  <div class="doc doc-contents ">
11045
11132
 
11046
- <p>Return a list of classes that has implements tags e.g tags = TagsField(...)</p>
11133
+ <p>Return a list of classes that has implements tags e.g tags = TagsField(...)</p>
11047
11134
 
11048
11135
  </div>
11049
11136
 
@@ -11069,7 +11156,7 @@ If <code>commit_hexsha</code> is specified and <code>branch</code> is a branch n
11069
11156
 
11070
11157
  <div class="doc doc-contents ">
11071
11158
 
11072
- <p>Return lookup expr with its verbose name</p>
11159
+ <p>Return lookup expr with its verbose name</p>
11073
11160
 
11074
11161
 
11075
11162
  <p><span class="doc-section-title">Parameters:</span></p>
@@ -11084,9 +11171,11 @@ If <code>commit_hexsha</code> is specified and <code>branch</code> is a branch n
11084
11171
  </thead>
11085
11172
  <tbody>
11086
11173
  <tr class="doc-section-item">
11087
- <td><code>field_name</code></td>
11088
11174
  <td>
11089
- <code><autoref identifier="str" optional>str</autoref></code>
11175
+ <code>field_name</code>
11176
+ </td>
11177
+ <td>
11178
+ <code>str</code>
11090
11179
  </td>
11091
11180
  <td>
11092
11181
  <div class="doc-md-description">
@@ -11098,9 +11187,11 @@ If <code>commit_hexsha</code> is specified and <code>branch</code> is a branch n
11098
11187
  </td>
11099
11188
  </tr>
11100
11189
  <tr class="doc-section-item">
11101
- <td><code>_verbose_name</code></td>
11102
11190
  <td>
11103
- <code><autoref identifier="str" optional>str</autoref></code>
11191
+ <code>_verbose_name</code>
11192
+ </td>
11193
+ <td>
11194
+ <code>str</code>
11104
11195
  </td>
11105
11196
  <td>
11106
11197
  <div class="doc-md-description">
@@ -11135,7 +11226,7 @@ If <code>commit_hexsha</code> is specified and <code>branch</code> is a branch n
11135
11226
 
11136
11227
  <div class="doc doc-contents ">
11137
11228
 
11138
- <p>Helper method to check if a key field is Python/GraphQL safe.
11229
+ <p>Helper method to check if a key field is Python/GraphQL safe.
11139
11230
  Used in CustomField, ComputedField and Relationship models.</p>
11140
11231
 
11141
11232
  </div>
@@ -11153,7 +11244,7 @@ Used in CustomField, ComputedField and Relationship models.</p>
11153
11244
 
11154
11245
  <div class="doc doc-contents ">
11155
11246
 
11156
- <p>Decorator to mark a class as deprecated with a custom message about what to do instead of subclassing it.</p>
11247
+ <p>Decorator to mark a class as deprecated with a custom message about what to do instead of subclassing it.</p>
11157
11248
 
11158
11249
  </div>
11159
11250
 
@@ -11170,7 +11261,7 @@ Used in CustomField, ComputedField and Relationship models.</p>
11170
11261
 
11171
11262
  <div class="doc doc-contents ">
11172
11263
 
11173
- <p>Decorator to mark a class as deprecated and suggest a replacement class if it is subclassed from.</p>
11264
+ <p>Decorator to mark a class as deprecated and suggest a replacement class if it is subclassed from.</p>
11174
11265
 
11175
11266
  </div>
11176
11267
 
@@ -11187,7 +11278,7 @@ Used in CustomField, ComputedField and Relationship models.</p>
11187
11278
 
11188
11279
  <div class="doc doc-contents ">
11189
11280
 
11190
- <div class="highlight"><pre><span></span><code>Convert Git diff log into a list splitted by \n
11281
+ <div class="highlight"><pre><span></span><code>Convert Git diff log into a list splitted by \n
11191
11282
 
11192
11283
  Example:
11193
11284
  &gt;&gt;&gt; git_log = &quot;M index.html
@@ -11211,7 +11302,7 @@ Example:
11211
11302
 
11212
11303
  <div class="doc doc-contents ">
11213
11304
 
11214
- <p>Convert request QueryDict/GET into an acceptable factory formset QueryDict
11305
+ <p>Convert request QueryDict/GET into an acceptable factory formset QueryDict
11215
11306
  while discarding <code>querydict</code> params which are not part of <code>filterset_class</code> params</p>
11216
11307
 
11217
11308
 
@@ -11227,9 +11318,11 @@ while discarding <code>querydict</code> params which are not part of <code>filte
11227
11318
  </thead>
11228
11319
  <tbody>
11229
11320
  <tr class="doc-section-item">
11230
- <td><code>request_querydict</code></td>
11231
11321
  <td>
11232
- <code><autoref identifier="django.http.QueryDict" optional hover>QueryDict</autoref></code>
11322
+ <code>request_querydict</code>
11323
+ </td>
11324
+ <td>
11325
+ <code><span title="django.http.QueryDict">QueryDict</span></code>
11233
11326
  </td>
11234
11327
  <td>
11235
11328
  <div class="doc-md-description">
@@ -11241,9 +11334,11 @@ while discarding <code>querydict</code> params which are not part of <code>filte
11241
11334
  </td>
11242
11335
  </tr>
11243
11336
  <tr class="doc-section-item">
11244
- <td><code>filterset</code></td>
11245
11337
  <td>
11246
- <code><autoref identifier="FilterSet" optional>FilterSet</autoref></code>
11338
+ <code>filterset</code>
11339
+ </td>
11340
+ <td>
11341
+ <code>FilterSet</code>
11247
11342
  </td>
11248
11343
  <td>
11249
11344
  <div class="doc-md-description">
@@ -11289,7 +11384,7 @@ while discarding <code>querydict</code> params which are not part of <code>filte
11289
11384
 
11290
11385
  <div class="doc doc-contents ">
11291
11386
 
11292
- <p>Decorator that wraps a models existing clean method to also execute registered plugin custom validators</p>
11387
+ <p>Decorator that wraps a models existing clean method to also execute registered plugin custom validators</p>
11293
11388
  <p>:param model_clean_func: The original model clean method which is to be wrapped</p>
11294
11389
 
11295
11390
  </div>
@@ -11307,7 +11402,7 @@ while discarding <code>querydict</code> params which are not part of <code>filte
11307
11402
 
11308
11403
  <div class="doc doc-contents ">
11309
11404
 
11310
- <p>Deep merge two dictionaries (new into original) and return a new dict</p>
11405
+ <p>Deep merge two dictionaries (new into original) and return a new dict</p>
11311
11406
 
11312
11407
  </div>
11313
11408
 
@@ -11324,7 +11419,7 @@ while discarding <code>querydict</code> params which are not part of <code>filte
11324
11419
 
11325
11420
  <div class="doc doc-contents ">
11326
11421
 
11327
- <p>Ensure <code>query_params</code> includes <code>content_type</code> and <code>field_name</code> and <code>content_type</code> is a valid ContentType.</p>
11422
+ <p>Ensure <code>query_params</code> includes <code>content_type</code> and <code>field_name</code> and <code>content_type</code> is a valid ContentType.</p>
11328
11423
  <p>Return the 'ContentTypes' model and 'field_name' if validation was successful.</p>
11329
11424
 
11330
11425
  </div>
@@ -11342,7 +11437,7 @@ while discarding <code>querydict</code> params which are not part of <code>filte
11342
11437
 
11343
11438
  <div class="doc doc-contents ">
11344
11439
 
11345
- <p>For instances of model that have an invalid NULL status field, create and use a special status_model instance.</p>
11440
+ <p>For instances of model that have an invalid NULL status field, create and use a special status_model instance.</p>
11346
11441
 
11347
11442
  </div>
11348
11443
 
@@ -11359,7 +11454,7 @@ while discarding <code>querydict</code> params which are not part of <code>filte
11359
11454
 
11360
11455
  <div class="doc doc-contents ">
11361
11456
 
11362
- <p>Flatten nested dictionaries into a single level by joining key names with a separator.</p>
11457
+ <p>Flatten nested dictionaries into a single level by joining key names with a separator.</p>
11363
11458
  <p>:param d: The dictionary to be flattened
11364
11459
  :param prefix: Initial prefix (if any)
11365
11460
  :param separator: The character to use when concatenating key names</p>
@@ -11379,7 +11474,7 @@ while discarding <code>querydict</code> params which are not part of <code>filte
11379
11474
 
11380
11475
  <div class="doc doc-contents ">
11381
11476
 
11382
- <p>Flatten a nested iterable such as a list of lists, keeping strings intact.</p>
11477
+ <p>Flatten a nested iterable such as a list of lists, keeping strings intact.</p>
11383
11478
  <p>:param iterable: The iterable to be flattened
11384
11479
  :returns: generator</p>
11385
11480
 
@@ -11398,7 +11493,7 @@ while discarding <code>querydict</code> params which are not part of <code>filte
11398
11493
 
11399
11494
  <div class="doc doc-contents ">
11400
11495
 
11401
- <p>Return the ideal foreground color (black or white) for a given background color in hexadecimal RGB format.</p>
11496
+ <p>Return the ideal foreground color (black or white) for a given background color in hexadecimal RGB format.</p>
11402
11497
 
11403
11498
  </div>
11404
11499
 
@@ -11415,7 +11510,7 @@ while discarding <code>querydict</code> params which are not part of <code>filte
11415
11510
 
11416
11511
  <div class="doc doc-contents ">
11417
11512
 
11418
- <p>Return a cryptographic signature that can be used to verify the authenticity of webhook data.</p>
11513
+ <p>Return a cryptographic signature that can be used to verify the authenticity of webhook data.</p>
11419
11514
 
11420
11515
  </div>
11421
11516
 
@@ -11432,7 +11527,7 @@ while discarding <code>querydict</code> params which are not part of <code>filte
11432
11527
 
11433
11528
  <div class="doc doc-contents ">
11434
11529
 
11435
- <p>Return all lookup expressions for <code>field_name</code> in <code>model</code> filterset</p>
11530
+ <p>Return all lookup expressions for <code>field_name</code> in <code>model</code> filterset</p>
11436
11531
 
11437
11532
  </div>
11438
11533
 
@@ -11449,7 +11544,7 @@ while discarding <code>querydict</code> params which are not part of <code>filte
11449
11544
 
11450
11545
  <div class="doc doc-contents ">
11451
11546
 
11452
- <p>Returns the name of the base template, if the base_template is not None
11547
+ <p>Returns the name of the base template, if the base_template is not None
11453
11548
  Otherwise, default to using "<app>/<model>.html" as the base template, if it exists.
11454
11549
  Otherwise, check if "<app>/<model>_retrieve.html" used in <code>NautobotUIViewSet</code> exists.
11455
11550
  If both templates do not exist, fall back to "base.html".</p>
@@ -11469,7 +11564,7 @@ If both templates do not exist, fall back to "base.html".</p>
11469
11564
 
11470
11565
  <div class="doc doc-contents ">
11471
11566
 
11472
- <p>Return a dictionary of celery queues and the number of workers active on the queue in
11567
+ <p>Return a dictionary of celery queues and the number of workers active on the queue in
11473
11568
  the form {queue_name: num_workers}</p>
11474
11569
 
11475
11570
  </div>
@@ -11487,7 +11582,7 @@ the form {queue_name: num_workers}</p>
11487
11582
 
11488
11583
  <div class="doc doc-contents ">
11489
11584
 
11490
- <p>Return a queryset of ObjectChanges for a model or instance. The queryset will be filtered
11585
+ <p>Return a queryset of ObjectChanges for a model or instance. The queryset will be filtered
11491
11586
  by the model class. If an instance is provided, the queryset will also be filtered by the instance id.</p>
11492
11587
 
11493
11588
  </div>
@@ -11505,7 +11600,7 @@ by the model class. If an instance is provided, the queryset will also be filter
11505
11600
 
11506
11601
  <div class="doc doc-contents ">
11507
11602
 
11508
- <p>Return a label for a given field name and value.</p>
11603
+ <p>Return a label for a given field name and value.</p>
11509
11604
 
11510
11605
 
11511
11606
  <p><span class="doc-section-title">Parameters:</span></p>
@@ -11520,9 +11615,11 @@ by the model class. If an instance is provided, the queryset will also be filter
11520
11615
  </thead>
11521
11616
  <tbody>
11522
11617
  <tr class="doc-section-item">
11523
- <td><code>filter_field</code></td>
11524
11618
  <td>
11525
- <code><autoref identifier="Filter" optional>Filter</autoref></code>
11619
+ <code>filter_field</code>
11620
+ </td>
11621
+ <td>
11622
+ <code>Filter</code>
11526
11623
  </td>
11527
11624
  <td>
11528
11625
  <div class="doc-md-description">
@@ -11548,7 +11645,7 @@ by the model class. If an instance is provided, the queryset will also be filter
11548
11645
  <tbody>
11549
11646
  <tr class="doc-section-item">
11550
11647
  <td>
11551
- <code><autoref identifier="str" optional>str</autoref></code>
11648
+ <code>str</code>
11552
11649
  </td>
11553
11650
  <td>
11554
11651
  <div class="doc-md-description">
@@ -11574,7 +11671,7 @@ by the model class. If an instance is provided, the queryset will also be filter
11574
11671
 
11575
11672
  <div class="doc doc-contents ">
11576
11673
 
11577
- <p>Remove any <code>non_filter_params</code> and fields that are not a part of the filterset from <code>filter_params</code>
11674
+ <p>Remove any <code>non_filter_params</code> and fields that are not a part of the filterset from <code>filter_params</code>
11578
11675
  to return only queryset filterable parameters.</p>
11579
11676
 
11580
11677
 
@@ -11590,9 +11687,11 @@ to return only queryset filterable parameters.</p>
11590
11687
  </thead>
11591
11688
  <tbody>
11592
11689
  <tr class="doc-section-item">
11593
- <td><code>filter_params</code></td>
11594
11690
  <td>
11595
- <code><autoref identifier="django.http.QueryDict" optional hover>QueryDict</autoref></code>
11691
+ <code>filter_params</code>
11692
+ </td>
11693
+ <td>
11694
+ <code><span title="django.http.QueryDict">QueryDict</span></code>
11596
11695
  </td>
11597
11696
  <td>
11598
11697
  <div class="doc-md-description">
@@ -11604,9 +11703,11 @@ to return only queryset filterable parameters.</p>
11604
11703
  </td>
11605
11704
  </tr>
11606
11705
  <tr class="doc-section-item">
11607
- <td><code>non_filter_params</code></td>
11608
11706
  <td>
11609
- <code><autoref identifier="list" optional>list</autoref></code>
11707
+ <code>non_filter_params</code>
11708
+ </td>
11709
+ <td>
11710
+ <code>list</code>
11610
11711
  </td>
11611
11712
  <td>
11612
11713
  <div class="doc-md-description">
@@ -11618,9 +11719,11 @@ to return only queryset filterable parameters.</p>
11618
11719
  </td>
11619
11720
  </tr>
11620
11721
  <tr class="doc-section-item">
11621
- <td><code>filterset</code></td>
11622
11722
  <td>
11623
- <code><autoref identifier="FilterSet" optional>FilterSet</autoref></code>
11723
+ <code>filterset</code>
11724
+ </td>
11725
+ <td>
11726
+ <code>FilterSet</code>
11624
11727
  </td>
11625
11728
  <td>
11626
11729
  <div class="doc-md-description">
@@ -11646,7 +11749,7 @@ to return only queryset filterable parameters.</p>
11646
11749
  <tbody>
11647
11750
  <tr class="doc-section-item">
11648
11751
  <td>
11649
- <code><autoref identifier="django.http.QueryDict" optional hover>QueryDict</autoref></code>
11752
+ <code><span title="django.http.QueryDict">QueryDict</span></code>
11650
11753
  </td>
11651
11754
  <td>
11652
11755
  <div class="doc-md-description">
@@ -11672,7 +11775,7 @@ to return only queryset filterable parameters.</p>
11672
11775
 
11673
11776
  <div class="doc doc-contents ">
11674
11777
 
11675
- <p>Return the <code>FilterSet</code> class associated with a given <code>model</code>.</p>
11778
+ <p>Return the <code>FilterSet</code> class associated with a given <code>model</code>.</p>
11676
11779
  <p>The <code>FilterSet</code> class is expected to be in the <code>filters</code> module within the application
11677
11780
  associated with the model and its name is expected to be <code>{ModelName}FilterSet</code>.</p>
11678
11781
  <p>If a matching <code>FilterSet</code> is not found, this will return <code>None</code>.</p>
@@ -11690,9 +11793,11 @@ associated with the model and its name is expected to be <code>{ModelName}Filter
11690
11793
  </thead>
11691
11794
  <tbody>
11692
11795
  <tr class="doc-section-item">
11693
- <td><code>model</code></td>
11694
11796
  <td>
11695
- <code><autoref identifier="BaseModel" optional>BaseModel</autoref></code>
11797
+ <code>model</code>
11798
+ </td>
11799
+ <td>
11800
+ <code>BaseModel</code>
11696
11801
  </td>
11697
11802
  <td>
11698
11803
  <div class="doc-md-description">
@@ -11718,7 +11823,7 @@ associated with the model and its name is expected to be <code>{ModelName}Filter
11718
11823
  <tbody>
11719
11824
  <tr class="doc-section-item">
11720
11825
  <td>
11721
- <code><autoref identifier="Union" optional>Union</autoref>[<autoref identifier="FilterSet" optional>FilterSet</autoref>, None]</code>
11826
+ <code>Union[FilterSet, None]</code>
11722
11827
  </td>
11723
11828
  <td>
11724
11829
  <div class="doc-md-description">
@@ -11744,7 +11849,7 @@ associated with the model and its name is expected to be <code>{ModelName}Filter
11744
11849
 
11745
11850
  <div class="doc doc-contents ">
11746
11851
 
11747
- <p>Return the relevant form field instance for a filterset parameter e.g DynamicModelMultipleChoiceField, forms.IntegerField e.t.c</p>
11852
+ <p>Return the relevant form field instance for a filterset parameter e.g DynamicModelMultipleChoiceField, forms.IntegerField e.t.c</p>
11748
11853
 
11749
11854
  </div>
11750
11855
 
@@ -11761,7 +11866,7 @@ associated with the model and its name is expected to be <code>{ModelName}Filter
11761
11866
 
11762
11867
  <div class="doc doc-contents ">
11763
11868
 
11764
- <p>Return the <code>Form</code> class associated with a given <code>model</code>.</p>
11869
+ <p>Return the <code>Form</code> class associated with a given <code>model</code>.</p>
11765
11870
  <p>The <code>Form</code> class is expected to be in the <code>forms</code> module within the application
11766
11871
  associated with the model and its name is expected to be <code>{ModelName}{form_prefix}Form</code>.</p>
11767
11872
  <p>If a matching <code>Form</code> is not found, this will return <code>None</code>.</p>
@@ -11779,9 +11884,11 @@ associated with the model and its name is expected to be <code>{ModelName}{form_
11779
11884
  </thead>
11780
11885
  <tbody>
11781
11886
  <tr class="doc-section-item">
11782
- <td><code>form_prefix</code></td>
11783
11887
  <td>
11784
- <code><autoref identifier="str" optional>str</autoref></code>
11888
+ <code>form_prefix</code>
11889
+ </td>
11890
+ <td>
11891
+ <code>str</code>
11785
11892
  </td>
11786
11893
  <td>
11787
11894
  <div class="doc-md-description">
@@ -11808,7 +11915,7 @@ associated with the model and its name is expected to be <code>{ModelName}{form_
11808
11915
  <tbody>
11809
11916
  <tr class="doc-section-item">
11810
11917
  <td>
11811
- <code><autoref identifier="Union" optional>Union</autoref>[<autoref identifier="Form" optional>Form</autoref>, None]</code>
11918
+ <code>Union[Form, None]</code>
11812
11919
  </td>
11813
11920
  <td>
11814
11921
  <div class="doc-md-description">
@@ -11834,7 +11941,7 @@ associated with the model and its name is expected to be <code>{ModelName}{form_
11834
11941
 
11835
11942
  <div class="doc doc-contents ">
11836
11943
 
11837
- <p>Get latest known Nautobot release from cache, or if not available, queue up a background task to populate the cache.</p>
11944
+ <p>Get latest known Nautobot release from cache, or if not available, queue up a background task to populate the cache.</p>
11838
11945
 
11839
11946
 
11840
11947
  <p><span class="doc-section-title">Returns:</span></p>
@@ -11848,7 +11955,7 @@ associated with the model and its name is expected to be <code>{ModelName}{form_
11848
11955
  <tbody>
11849
11956
  <tr class="doc-section-item">
11850
11957
  <td>
11851
- <code>(<autoref identifier="Version" optional>Version</autoref>, <autoref identifier="str" optional>str</autoref>)</code>
11958
+ <code>(Version, str)</code>
11852
11959
  </td>
11853
11960
  <td>
11854
11961
  <div class="doc-md-description">
@@ -11858,7 +11965,7 @@ associated with the model and its name is expected to be <code>{ModelName}{form_
11858
11965
  </tr>
11859
11966
  <tr class="doc-section-item">
11860
11967
  <td>
11861
- <code>(<autoref identifier="unknown" optional>unknown</autoref>, None)</code>
11968
+ <code>(unknown, None)</code>
11862
11969
  </td>
11863
11970
  <td>
11864
11971
  <div class="doc-md-description">
@@ -11884,7 +11991,7 @@ associated with the model and its name is expected to be <code>{ModelName}{form_
11884
11991
 
11885
11992
  <div class="doc doc-contents ">
11886
11993
 
11887
- <p>Given a full model name in dotted format (example: <code>dcim.model</code>), a model class is returned if valid.</p>
11994
+ <p>Given a full model name in dotted format (example: <code>dcim.model</code>), a model class is returned if valid.</p>
11888
11995
  <p>:param model_name: Full dotted name for a model as a string (ex: <code>dcim.model</code>)
11889
11996
  :type model_name: str</p>
11890
11997
  <p>:raises TypeError: If given model name is not found.</p>
@@ -11905,7 +12012,7 @@ associated with the model and its name is expected to be <code>{ModelName}{form_
11905
12012
 
11906
12013
  <div class="doc doc-contents ">
11907
12014
 
11908
- <p>Resolve the named permission for a given model (or instance) and action (e.g. view or add).</p>
12015
+ <p>Resolve the named permission for a given model (or instance) and action (e.g. view or add).</p>
11909
12016
  <p>:param model: A model or instance
11910
12017
  :param action: View, add, change, or delete (string)</p>
11911
12018
 
@@ -11924,7 +12031,7 @@ associated with the model and its name is expected to be <code>{ModelName}{form_
11924
12031
 
11925
12032
  <div class="doc doc-contents ">
11926
12033
 
11927
- <p>Return the appropriate class associated with a given model matching the <code>module_name</code> and
12034
+ <p>Return the appropriate class associated with a given model matching the <code>module_name</code> and
11928
12035
  <code>object_suffix</code>.</p>
11929
12036
  <p>The given <code>model</code> can either be a model class, a model instance, or a dotted representation (ex: <code>dcim.device</code>).</p>
11930
12037
  <p>The object class is expected to be in the module within the application
@@ -11944,9 +12051,11 @@ associated with the model and its name is expected to be <code>{ModelName}{objec
11944
12051
  </thead>
11945
12052
  <tbody>
11946
12053
  <tr class="doc-section-item">
11947
- <td><code>model</code></td>
11948
12054
  <td>
11949
- <code><autoref identifier="Union" optional>Union</autoref>[<autoref identifier="BaseModel" optional>BaseModel</autoref>, <autoref identifier="str" optional>str</autoref>]</code>
12055
+ <code>model</code>
12056
+ </td>
12057
+ <td>
12058
+ <code>Union[BaseModel, str]</code>
11950
12059
  </td>
11951
12060
  <td>
11952
12061
  <div class="doc-md-description">
@@ -11958,9 +12067,11 @@ associated with the model and its name is expected to be <code>{ModelName}{objec
11958
12067
  </td>
11959
12068
  </tr>
11960
12069
  <tr class="doc-section-item">
11961
- <td><code>module_name</code></td>
11962
12070
  <td>
11963
- <code><autoref identifier="str" optional>str</autoref></code>
12071
+ <code>module_name</code>
12072
+ </td>
12073
+ <td>
12074
+ <code>str</code>
11964
12075
  </td>
11965
12076
  <td>
11966
12077
  <div class="doc-md-description">
@@ -11972,9 +12083,11 @@ associated with the model and its name is expected to be <code>{ModelName}{objec
11972
12083
  </td>
11973
12084
  </tr>
11974
12085
  <tr class="doc-section-item">
11975
- <td><code>object_suffix</code></td>
11976
12086
  <td>
11977
- <code><autoref identifier="str" optional>str</autoref></code>
12087
+ <code>object_suffix</code>
12088
+ </td>
12089
+ <td>
12090
+ <code>str</code>
11978
12091
  </td>
11979
12092
  <td>
11980
12093
  <div class="doc-md-description">
@@ -12000,7 +12113,7 @@ associated with the model and its name is expected to be <code>{ModelName}{objec
12000
12113
  <tbody>
12001
12114
  <tr class="doc-section-item">
12002
12115
  <td>
12003
- <code><autoref identifier="Union" optional>Union</autoref>[<autoref identifier="BaseModel" optional>BaseModel</autoref>, <autoref identifier="str" optional>str</autoref>]</code>
12116
+ <code>Union[BaseModel, str]</code>
12004
12117
  </td>
12005
12118
  <td>
12006
12119
  <div class="doc-md-description">
@@ -12026,7 +12139,7 @@ associated with the model and its name is expected to be <code>{ModelName}{objec
12026
12139
 
12027
12140
  <div class="doc doc-contents ">
12028
12141
 
12029
- <p>Find the field on <code>from_model</code> that is a relation to <code>to_model</code>.</p>
12142
+ <p>Find the field on <code>from_model</code> that is a relation to <code>to_model</code>.</p>
12030
12143
  <p>If no such field is found, returns None.
12031
12144
  If more than one such field is found, raises an AttributeError.</p>
12032
12145
 
@@ -12043,9 +12156,11 @@ If more than one such field is found, raises an AttributeError.</p>
12043
12156
  </thead>
12044
12157
  <tbody>
12045
12158
  <tr class="doc-section-item">
12046
- <td><code>from_model</code></td>
12047
12159
  <td>
12048
- <code><autoref identifier="BaseModel" optional>BaseModel</autoref></code>
12160
+ <code>from_model</code>
12161
+ </td>
12162
+ <td>
12163
+ <code>BaseModel</code>
12049
12164
  </td>
12050
12165
  <td>
12051
12166
  <div class="doc-md-description">
@@ -12057,9 +12172,11 @@ If more than one such field is found, raises an AttributeError.</p>
12057
12172
  </td>
12058
12173
  </tr>
12059
12174
  <tr class="doc-section-item">
12060
- <td><code>to_model</code></td>
12061
12175
  <td>
12062
- <code><autoref identifier="BaseModel" optional>BaseModel</autoref></code>
12176
+ <code>to_model</code>
12177
+ </td>
12178
+ <td>
12179
+ <code>BaseModel</code>
12063
12180
  </td>
12064
12181
  <td>
12065
12182
  <div class="doc-md-description">
@@ -12102,7 +12219,7 @@ If more than one such field is found, raises an AttributeError.</p>
12102
12219
 
12103
12220
  <div class="doc doc-contents ">
12104
12221
 
12105
- <p>Return the URL route name for the given model and action. Does not perform any validation.
12222
+ <p>Return the URL route name for the given model and action. Does not perform any validation.
12106
12223
  Supports both core and App routes.</p>
12107
12224
 
12108
12225
 
@@ -12118,9 +12235,11 @@ Supports both core and App routes.</p>
12118
12235
  </thead>
12119
12236
  <tbody>
12120
12237
  <tr class="doc-section-item">
12121
- <td><code>model</code></td>
12122
12238
  <td>
12123
- <code>(<autoref identifier="nautobot.core.models.Model" optional hover>Model</autoref>, <autoref identifier="str" optional>str</autoref>)</code>
12239
+ <code>model</code>
12240
+ </td>
12241
+ <td>
12242
+ <code>(<span title="nautobot.core.models.Model">Model</span>, str)</code>
12124
12243
  </td>
12125
12244
  <td>
12126
12245
  <div class="doc-md-description">
@@ -12132,9 +12251,11 @@ Supports both core and App routes.</p>
12132
12251
  </td>
12133
12252
  </tr>
12134
12253
  <tr class="doc-section-item">
12135
- <td><code>action</code></td>
12136
12254
  <td>
12137
- <code><autoref identifier="str" optional>str</autoref></code>
12255
+ <code>action</code>
12256
+ </td>
12257
+ <td>
12258
+ <code>str</code>
12138
12259
  </td>
12139
12260
  <td>
12140
12261
  <div class="doc-md-description">
@@ -12146,9 +12267,11 @@ Supports both core and App routes.</p>
12146
12267
  </td>
12147
12268
  </tr>
12148
12269
  <tr class="doc-section-item">
12149
- <td><code>api</code></td>
12150
12270
  <td>
12151
- <code><autoref identifier="bool" optional>bool</autoref></code>
12271
+ <code>api</code>
12272
+ </td>
12273
+ <td>
12274
+ <code>bool</code>
12152
12275
  </td>
12153
12276
  <td>
12154
12277
  <div class="doc-md-description">
@@ -12174,7 +12297,7 @@ Supports both core and App routes.</p>
12174
12297
  <tbody>
12175
12298
  <tr class="doc-section-item">
12176
12299
  <td>
12177
- <code><autoref identifier="str" optional>str</autoref></code>
12300
+ <code>str</code>
12178
12301
  </td>
12179
12302
  <td>
12180
12303
  <div class="doc-md-description">
@@ -12216,7 +12339,7 @@ Supports both core and App routes.</p>
12216
12339
 
12217
12340
  <div class="doc doc-contents ">
12218
12341
 
12219
- <p>Get a value from Django settings (if specified there) or Constance configuration (otherwise).</p>
12342
+ <p>Get a value from Django settings (if specified there) or Constance configuration (otherwise).</p>
12220
12343
  <p>The fallback value is returned <em>only</em> if the requested variable cannot be found at all - this is an error case,
12221
12344
  and will generate warning logs.</p>
12222
12345
 
@@ -12228,14 +12351,14 @@ and will generate warning logs.</p>
12228
12351
 
12229
12352
 
12230
12353
  <h2 id="nautobot.apps.utils.get_table_for_model" class="doc doc-heading">
12231
- <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">utils</span><span class="o">.</span><span class="n">get_table_for_model</span><span class="p">(</span><span class="n">model</span><span class="p">)</span></code>
12354
+ <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">utils</span><span class="o">.</span><span class="n">get_table_for_model</span><span class="p">(</span><span class="n">model</span><span class="p">,</span> <span class="n">suffix</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span></code>
12232
12355
 
12233
12356
  <a href="#nautobot.apps.utils.get_table_for_model" class="headerlink" title="Permanent link">&para;</a></h2>
12234
12357
 
12235
12358
 
12236
12359
  <div class="doc doc-contents ">
12237
12360
 
12238
- <p>Return the <code>Table</code> class associated with a given <code>model</code>.</p>
12361
+ <p>Return the <code>Table</code> class associated with a given <code>model</code>.</p>
12239
12362
  <p>The <code>Table</code> class is expected to be in the <code>tables</code> module within the application
12240
12363
  associated with the model and its name is expected to be <code>{ModelName}Table</code>.</p>
12241
12364
  <p>If a matching <code>Table</code> is not found, this will return <code>None</code>.</p>
@@ -12253,9 +12376,11 @@ associated with the model and its name is expected to be <code>{ModelName}Table<
12253
12376
  </thead>
12254
12377
  <tbody>
12255
12378
  <tr class="doc-section-item">
12256
- <td><code>model</code></td>
12257
12379
  <td>
12258
- <code><autoref identifier="BaseModel" optional>BaseModel</autoref></code>
12380
+ <code>model</code>
12381
+ </td>
12382
+ <td>
12383
+ <code>BaseModel</code>
12259
12384
  </td>
12260
12385
  <td>
12261
12386
  <div class="doc-md-description">
@@ -12266,6 +12391,22 @@ associated with the model and its name is expected to be <code>{ModelName}Table<
12266
12391
  <em>required</em>
12267
12392
  </td>
12268
12393
  </tr>
12394
+ <tr class="doc-section-item">
12395
+ <td>
12396
+ <code>suffix</code>
12397
+ </td>
12398
+ <td>
12399
+ <code>str</code>
12400
+ </td>
12401
+ <td>
12402
+ <div class="doc-md-description">
12403
+ <p>A replacement suffix for the table name (e.g. <code>DetailTable</code>, such as to retrieve <code>FooDetailTable</code>)</p>
12404
+ </div>
12405
+ </td>
12406
+ <td>
12407
+ <code>None</code>
12408
+ </td>
12409
+ </tr>
12269
12410
  </tbody>
12270
12411
  </table>
12271
12412
 
@@ -12281,7 +12422,7 @@ associated with the model and its name is expected to be <code>{ModelName}Table<
12281
12422
  <tbody>
12282
12423
  <tr class="doc-section-item">
12283
12424
  <td>
12284
- <code><autoref identifier="Union" optional>Union</autoref>[<autoref identifier="Table" optional>Table</autoref>, None]</code>
12425
+ <code>Union[Table, None]</code>
12285
12426
  </td>
12286
12427
  <td>
12287
12428
  <div class="doc-md-description">
@@ -12307,7 +12448,7 @@ associated with the model and its name is expected to be <code>{ModelName}Table<
12307
12448
 
12308
12449
  <div class="doc doc-contents ">
12309
12450
 
12310
- <p>Given a URL pattern, construct a URL string that would match that pattern.</p>
12451
+ <p>Given a URL pattern, construct a URL string that would match that pattern.</p>
12311
12452
 
12312
12453
 
12313
12454
  <p><span class="doc-section-title">Examples:</span></p>
@@ -12332,7 +12473,7 @@ associated with the model and its name is expected to be <code>{ModelName}Table<
12332
12473
 
12333
12474
  <div class="doc doc-contents ">
12334
12475
 
12335
- <p>Recursively yield a list of registered URL patterns.</p>
12476
+ <p>Recursively yield a list of registered URL patterns.</p>
12336
12477
 
12337
12478
 
12338
12479
  <p><span class="doc-section-title">Parameters:</span></p>
@@ -12347,9 +12488,11 @@ associated with the model and its name is expected to be <code>{ModelName}Table<
12347
12488
  </thead>
12348
12489
  <tbody>
12349
12490
  <tr class="doc-section-item">
12350
- <td><code>urlconf</code></td>
12351
12491
  <td>
12352
- <code><autoref identifier="URLConf" optional>URLConf</autoref></code>
12492
+ <code>urlconf</code>
12493
+ </td>
12494
+ <td>
12495
+ <code>URLConf</code>
12353
12496
  </td>
12354
12497
  <td>
12355
12498
  <div class="doc-md-description">
@@ -12362,9 +12505,11 @@ Default if unspecified is the value of <code>settings.ROOT_URLCONF</code>, i.e.
12362
12505
  </td>
12363
12506
  </tr>
12364
12507
  <tr class="doc-section-item">
12365
- <td><code>patterns_list</code></td>
12366
12508
  <td>
12367
- <code><autoref identifier="list" optional>list</autoref></code>
12509
+ <code>patterns_list</code>
12510
+ </td>
12511
+ <td>
12512
+ <code>list</code>
12368
12513
  </td>
12369
12514
  <td>
12370
12515
  <div class="doc-md-description">
@@ -12377,9 +12522,11 @@ Default if unspecified is the <code>url_patterns</code> attribute of the given <
12377
12522
  </td>
12378
12523
  </tr>
12379
12524
  <tr class="doc-section-item">
12380
- <td><code>base_path</code></td>
12381
12525
  <td>
12382
- <code><autoref identifier="str" optional>str</autoref></code>
12526
+ <code>base_path</code>
12527
+ </td>
12528
+ <td>
12529
+ <code>str</code>
12383
12530
  </td>
12384
12531
  <td>
12385
12532
  <div class="doc-md-description">
@@ -12392,9 +12539,11 @@ Default if unspecified is the string <code>"/"</code>.</p>
12392
12539
  </td>
12393
12540
  </tr>
12394
12541
  <tr class="doc-section-item">
12395
- <td><code>ignore_redirects</code></td>
12396
12542
  <td>
12397
- <code><autoref identifier="bool" optional>bool</autoref></code>
12543
+ <code>ignore_redirects</code>
12544
+ </td>
12545
+ <td>
12546
+ <code>bool</code>
12398
12547
  </td>
12399
12548
  <td>
12400
12549
  <div class="doc-md-description">
@@ -12420,7 +12569,7 @@ Default if unspecified is the string <code>"/"</code>.</p>
12420
12569
  <tbody>
12421
12570
  <tr class="doc-section-item">
12422
12571
  <td>
12423
- <code><autoref identifier="str" optional>str</autoref></code>
12572
+ <code>str</code>
12424
12573
  </td>
12425
12574
  <td>
12426
12575
  <div class="doc-md-description">
@@ -12495,7 +12644,7 @@ Default if unspecified is the string <code>"/"</code>.</p>
12495
12644
 
12496
12645
  <div class="doc doc-contents ">
12497
12646
 
12498
- <p>Return the <code>UIViewSet</code> or <code>&lt;view_type&gt;View</code> class associated with a given <code>model</code>.</p>
12647
+ <p>Return the <code>UIViewSet</code> or <code>&lt;view_type&gt;View</code> class associated with a given <code>model</code>.</p>
12499
12648
  <p>The view class is expected to be in the <code>views</code> module within the app associated with the model,
12500
12649
  and its name is expected to be either <code>{ModelName}UIViewSet</code> or <code>{ModelName}{view_type}View</code>.</p>
12501
12650
  <p>If neither view class is found, this will return <code>None</code>.</p>
@@ -12515,7 +12664,7 @@ and its name is expected to be either <code>{ModelName}UIViewSet</code> or <code
12515
12664
 
12516
12665
  <div class="doc doc-contents ">
12517
12666
 
12518
- <p>Return a count of the active Celery workers in a specified queue (Could be a JobQueue instance, instance pk or instance name).
12667
+ <p>Return a count of the active Celery workers in a specified queue (Could be a JobQueue instance, instance pk or instance name).
12519
12668
  Defaults to the <code>CELERY_TASK_DEFAULT_QUEUE</code> setting.</p>
12520
12669
 
12521
12670
  </div>
@@ -12533,7 +12682,7 @@ Defaults to the <code>CELERY_TASK_DEFAULT_QUEUE</code> setting.</p>
12533
12682
 
12534
12683
  <div class="doc doc-contents ">
12535
12684
 
12536
- <p>Map a hex string like "00ff00" to individual r, g, b integer values.</p>
12685
+ <p>Map a hex string like "00ff00" to individual r, g, b integer values.</p>
12537
12686
 
12538
12687
  </div>
12539
12688
 
@@ -12550,7 +12699,7 @@ Defaults to the <code>CELERY_TASK_DEFAULT_QUEUE</code> setting.</p>
12550
12699
 
12551
12700
  <div class="doc doc-contents ">
12552
12701
 
12553
- <p>Return a path for uploading image attachments.</p>
12702
+ <p>Return a path for uploading image attachments.</p>
12554
12703
 
12555
12704
  </div>
12556
12705
 
@@ -12567,7 +12716,7 @@ Defaults to the <code>CELERY_TASK_DEFAULT_QUEUE</code> setting.</p>
12567
12716
 
12568
12717
  <div class="doc doc-contents ">
12569
12718
 
12570
- <p>Validate whether a value is a URL.</p>
12719
+ <p>Validate whether a value is a URL.</p>
12571
12720
 
12572
12721
 
12573
12722
  <p><span class="doc-section-title">Parameters:</span></p>
@@ -12582,9 +12731,11 @@ Defaults to the <code>CELERY_TASK_DEFAULT_QUEUE</code> setting.</p>
12582
12731
  </thead>
12583
12732
  <tbody>
12584
12733
  <tr class="doc-section-item">
12585
- <td><code>value</code></td>
12586
12734
  <td>
12587
- <code><autoref identifier="str" optional>str</autoref></code>
12735
+ <code>value</code>
12736
+ </td>
12737
+ <td>
12738
+ <code>str</code>
12588
12739
  </td>
12589
12740
  <td>
12590
12741
  <div class="doc-md-description">
@@ -12610,7 +12761,7 @@ Defaults to the <code>CELERY_TASK_DEFAULT_QUEUE</code> setting.</p>
12610
12761
  <tbody>
12611
12762
  <tr class="doc-section-item">
12612
12763
  <td>
12613
- <code><autoref identifier="bool" optional>bool</autoref></code>
12764
+ <code>bool</code>
12614
12765
  </td>
12615
12766
  <td>
12616
12767
  <div class="doc-md-description">
@@ -12636,7 +12787,7 @@ Defaults to the <code>CELERY_TASK_DEFAULT_QUEUE</code> setting.</p>
12636
12787
 
12637
12788
  <div class="doc doc-contents ">
12638
12789
 
12639
- <p>Make a given RGB color lighter (closer to white).</p>
12790
+ <p>Make a given RGB color lighter (closer to white).</p>
12640
12791
 
12641
12792
  </div>
12642
12793
 
@@ -12653,7 +12804,7 @@ Defaults to the <code>CELERY_TASK_DEFAULT_QUEUE</code> setting.</p>
12653
12804
 
12654
12805
  <div class="doc doc-contents ">
12655
12806
 
12656
- <p>Merge two dicts into a new dict, but raise a ValueError if any key exists with differing values across both dicts.</p>
12807
+ <p>Merge two dicts into a new dict, but raise a ValueError if any key exists with differing values across both dicts.</p>
12657
12808
 
12658
12809
  </div>
12659
12810
 
@@ -12670,7 +12821,7 @@ Defaults to the <code>CELERY_TASK_DEFAULT_QUEUE</code> setting.</p>
12670
12821
 
12671
12822
  <div class="doc doc-contents ">
12672
12823
 
12673
- <p>When replacing a model, this will update references to the content type on related models such as tags and object changes.</p>
12824
+ <p>When replacing a model, this will update references to the content type on related models such as tags and object changes.</p>
12674
12825
  <p>Since this only updates the content type and not the primary key, this is typically only useful when migrating to a new model
12675
12826
  and preserving the old instance's primary key.</p>
12676
12827
 
@@ -12689,7 +12840,7 @@ and preserving the old instance's primary key.</p>
12689
12840
  <li>RelationshipAssociation.destination_type</li>
12690
12841
  <li>TaggedItem.content_type</li>
12691
12842
  </ul>
12692
- </details> <p>For these one-to-many and many-to-many relationships, the new content type is added
12843
+ </details> <p>For these one-to-many and many-to-many relationships, the new content type is added
12693
12844
  to the related model's content type list, but the old content type is not removed:
12694
12845
  - CustomField.content_types
12695
12846
  - JobButton.content_types
@@ -12714,9 +12865,11 @@ content types if an instance of the new model is using the tag.</p>
12714
12865
  </thead>
12715
12866
  <tbody>
12716
12867
  <tr class="doc-section-item">
12717
- <td><code>apps</code></td>
12718
12868
  <td>
12719
- <code><autoref identifier="obj" optional>obj</autoref></code>
12869
+ <code>apps</code>
12870
+ </td>
12871
+ <td>
12872
+ <code>obj</code>
12720
12873
  </td>
12721
12874
  <td>
12722
12875
  <div class="doc-md-description">
@@ -12728,9 +12881,11 @@ content types if an instance of the new model is using the tag.</p>
12728
12881
  </td>
12729
12882
  </tr>
12730
12883
  <tr class="doc-section-item">
12731
- <td><code>old_ct</code></td>
12732
12884
  <td>
12733
- <code><autoref identifier="obj" optional>obj</autoref></code>
12885
+ <code>old_ct</code>
12886
+ </td>
12887
+ <td>
12888
+ <code>obj</code>
12734
12889
  </td>
12735
12890
  <td>
12736
12891
  <div class="doc-md-description">
@@ -12742,9 +12897,11 @@ content types if an instance of the new model is using the tag.</p>
12742
12897
  </td>
12743
12898
  </tr>
12744
12899
  <tr class="doc-section-item">
12745
- <td><code>new_ct</code></td>
12746
12900
  <td>
12747
- <code><autoref identifier="obj" optional>obj</autoref></code>
12901
+ <code>new_ct</code>
12902
+ </td>
12903
+ <td>
12904
+ <code>obj</code>
12748
12905
  </td>
12749
12906
  <td>
12750
12907
  <div class="doc-md-description">
@@ -12773,7 +12930,7 @@ content types if an instance of the new model is using the tag.</p>
12773
12930
 
12774
12931
  <div class="doc doc-contents ">
12775
12932
 
12776
- <p>Update all <code>model_to_migrate</code> with a value for <code>to_role_field</code> based on <code>from_role_field</code> values.</p>
12933
+ <p>Update all <code>model_to_migrate</code> with a value for <code>to_role_field</code> based on <code>from_role_field</code> values.</p>
12777
12934
 
12778
12935
 
12779
12936
  <p><span class="doc-section-title">Parameters:</span></p>
@@ -12788,9 +12945,11 @@ content types if an instance of the new model is using the tag.</p>
12788
12945
  </thead>
12789
12946
  <tbody>
12790
12947
  <tr class="doc-section-item">
12791
- <td><code>model_to_migrate</code></td>
12792
12948
  <td>
12793
- <code><autoref identifier="Model" optional>Model</autoref></code>
12949
+ <code>model_to_migrate</code>
12950
+ </td>
12951
+ <td>
12952
+ <code>Model</code>
12794
12953
  </td>
12795
12954
  <td>
12796
12955
  <div class="doc-md-description">
@@ -12802,9 +12961,11 @@ content types if an instance of the new model is using the tag.</p>
12802
12961
  </td>
12803
12962
  </tr>
12804
12963
  <tr class="doc-section-item">
12805
- <td><code>from_role_field_name</code></td>
12806
12964
  <td>
12807
- <code><autoref identifier="str" optional>str</autoref></code>
12965
+ <code>from_role_field_name</code>
12966
+ </td>
12967
+ <td>
12968
+ <code>str</code>
12808
12969
  </td>
12809
12970
  <td>
12810
12971
  <div class="doc-md-description">
@@ -12816,9 +12977,11 @@ content types if an instance of the new model is using the tag.</p>
12816
12977
  </td>
12817
12978
  </tr>
12818
12979
  <tr class="doc-section-item">
12819
- <td><code>from_role_model</code></td>
12820
12980
  <td>
12821
- <code><autoref identifier="Model" optional>Model</autoref></code>
12981
+ <code>from_role_model</code>
12982
+ </td>
12983
+ <td>
12984
+ <code>Model</code>
12822
12985
  </td>
12823
12986
  <td>
12824
12987
  <div class="doc-md-description">
@@ -12830,9 +12993,11 @@ content types if an instance of the new model is using the tag.</p>
12830
12993
  </td>
12831
12994
  </tr>
12832
12995
  <tr class="doc-section-item">
12833
- <td><code>from_role_choiceset</code></td>
12834
12996
  <td>
12835
- <code><autoref identifier="ChoiceSet" optional>ChoiceSet</autoref></code>
12997
+ <code>from_role_choiceset</code>
12998
+ </td>
12999
+ <td>
13000
+ <code>ChoiceSet</code>
12836
13001
  </td>
12837
13002
  <td>
12838
13003
  <div class="doc-md-description">
@@ -12844,9 +13009,11 @@ content types if an instance of the new model is using the tag.</p>
12844
13009
  </td>
12845
13010
  </tr>
12846
13011
  <tr class="doc-section-item">
12847
- <td><code>to_role_field_name</code></td>
12848
13012
  <td>
12849
- <code><autoref identifier="str" optional>str</autoref></code>
13013
+ <code>to_role_field_name</code>
13014
+ </td>
13015
+ <td>
13016
+ <code>str</code>
12850
13017
  </td>
12851
13018
  <td>
12852
13019
  <div class="doc-md-description">
@@ -12858,9 +13025,11 @@ content types if an instance of the new model is using the tag.</p>
12858
13025
  </td>
12859
13026
  </tr>
12860
13027
  <tr class="doc-section-item">
12861
- <td><code>to_role_model</code></td>
12862
13028
  <td>
12863
- <code><autoref identifier="Model" optional>Model</autoref></code>
13029
+ <code>to_role_model</code>
13030
+ </td>
13031
+ <td>
13032
+ <code>Model</code>
12864
13033
  </td>
12865
13034
  <td>
12866
13035
  <div class="doc-md-description">
@@ -12872,9 +13041,11 @@ content types if an instance of the new model is using the tag.</p>
12872
13041
  </td>
12873
13042
  </tr>
12874
13043
  <tr class="doc-section-item">
12875
- <td><code>to_role_choiceset</code></td>
12876
13044
  <td>
12877
- <code><autoref identifier="ChoiceSet" optional>ChoiceSet</autoref></code>
13045
+ <code>to_role_choiceset</code>
13046
+ </td>
13047
+ <td>
13048
+ <code>ChoiceSet</code>
12878
13049
  </td>
12879
13050
  <td>
12880
13051
  <div class="doc-md-description">
@@ -12886,9 +13057,11 @@ content types if an instance of the new model is using the tag.</p>
12886
13057
  </td>
12887
13058
  </tr>
12888
13059
  <tr class="doc-section-item">
12889
- <td><code>is_m2m_field</code></td>
12890
13060
  <td>
12891
- <code><autoref identifier="bool" optional>bool</autoref></code>
13061
+ <code>is_m2m_field</code>
13062
+ </td>
13063
+ <td>
13064
+ <code>bool</code>
12892
13065
  </td>
12893
13066
  <td>
12894
13067
  <div class="doc-md-description">
@@ -12910,22 +13083,111 @@ content types if an instance of the new model is using the tag.</p>
12910
13083
 
12911
13084
 
12912
13085
  <h2 id="nautobot.apps.utils.normalize_querydict" class="doc doc-heading">
12913
- <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">utils</span><span class="o">.</span><span class="n">normalize_querydict</span><span class="p">(</span><span class="n">querydict</span><span class="p">,</span> <span class="n">form_class</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span></code>
13086
+ <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">utils</span><span class="o">.</span><span class="n">normalize_querydict</span><span class="p">(</span><span class="n">querydict</span><span class="p">,</span> <span class="n">form_class</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">filterset</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span></code>
12914
13087
 
12915
13088
  <a href="#nautobot.apps.utils.normalize_querydict" class="headerlink" title="Permanent link">&para;</a></h2>
12916
13089
 
12917
13090
 
12918
13091
  <div class="doc doc-contents ">
12919
13092
 
12920
- <p>Convert a QueryDict to a normal, mutable dictionary, preserving list values. For example,</p>
12921
- <div class="highlight"><pre><span></span><code>QueryDict(&#39;foo=1&amp;bar=2&amp;bar=3&amp;baz=&#39;)
12922
- </code></pre></div>
12923
- <p>becomes:</p>
12924
- <div class="highlight"><pre><span></span><code>{&#39;foo&#39;: &#39;1&#39;, &#39;bar&#39;: [&#39;2&#39;, &#39;3&#39;], &#39;baz&#39;: &#39;&#39;}
12925
- </code></pre></div>
12926
- <p>This function is necessary because QueryDict does not provide any built-in mechanism which preserves multiple
12927
- values.</p>
12928
- <p>A <code>form_class</code> can be provided as a way to hint which query parameters should be treated as lists.</p>
13093
+ <p>Converts a QueryDict into a standard, mutable dictionary while preserving multiple values as lists.</p>
13094
+
13095
+
13096
+ <details class="example" open>
13097
+ <summary>Example</summary>
13098
+ <p>A QueryDict like:
13099
+ QueryDict('foo=1&amp;bar=2&amp;bar=3&amp;baz=')</p>
13100
+ <p _="''" _1_="'1'," _2_="['2'," _3_="'3']," _bar_:="'bar':" _baz_:="'baz':" _foo_:="'foo':">Converts to:</p>
13101
+ </details> <p>This function ensures that fields with multiple values are handled correctly, as QueryDict
13102
+ does not inherently preserve multiple values as lists.</p>
13103
+
13104
+
13105
+ <p><span class="doc-section-title">Parameters:</span></p>
13106
+ <table>
13107
+ <thead>
13108
+ <tr>
13109
+ <th>Name</th>
13110
+ <th>Type</th>
13111
+ <th>Description</th>
13112
+ <th>Default</th>
13113
+ </tr>
13114
+ </thead>
13115
+ <tbody>
13116
+ <tr class="doc-section-item">
13117
+ <td>
13118
+ <code>querydict</code>
13119
+ </td>
13120
+ <td>
13121
+ <code><span title="django.http.QueryDict">QueryDict</span></code>
13122
+ </td>
13123
+ <td>
13124
+ <div class="doc-md-description">
13125
+ <p>The QueryDict to be normalized.</p>
13126
+ </div>
13127
+ </td>
13128
+ <td>
13129
+ <em>required</em>
13130
+ </td>
13131
+ </tr>
13132
+ <tr class="doc-section-item">
13133
+ <td>
13134
+ <code>form_class</code>
13135
+ </td>
13136
+ <td>
13137
+ <code><span title="django.forms.Form">Form</span></code>
13138
+ </td>
13139
+ <td>
13140
+ <div class="doc-md-description">
13141
+ <p>A form class to identify fields that should be treated as
13142
+ lists (e.g., <code>MultipleChoiceField</code> or <code>ModelMultipleChoiceField</code>).</p>
13143
+ </div>
13144
+ </td>
13145
+ <td>
13146
+ <code>None</code>
13147
+ </td>
13148
+ </tr>
13149
+ <tr class="doc-section-item">
13150
+ <td>
13151
+ <code>filterset</code>
13152
+ </td>
13153
+ <td>
13154
+ <code><span title="django_filters.FilterSet">FilterSet</span></code>
13155
+ </td>
13156
+ <td>
13157
+ <div class="doc-md-description">
13158
+ <p>A FilterSet instance to identify filters that
13159
+ should preserve multiple values as lists (e.g., non-single-choice fields).</p>
13160
+ </div>
13161
+ </td>
13162
+ <td>
13163
+ <code>None</code>
13164
+ </td>
13165
+ </tr>
13166
+ </tbody>
13167
+ </table>
13168
+
13169
+
13170
+ <p><span class="doc-section-title">Raises:</span></p>
13171
+ <table>
13172
+ <thead>
13173
+ <tr>
13174
+ <th>Type</th>
13175
+ <th>Description</th>
13176
+ </tr>
13177
+ </thead>
13178
+ <tbody>
13179
+ <tr class="doc-section-item">
13180
+ <td>
13181
+ <code>AttributeError</code>
13182
+ </td>
13183
+ <td>
13184
+ <div class="doc-md-description">
13185
+ <p>If both <code>form_class</code> and <code>filterset</code> are provided.</p>
13186
+ </div>
13187
+ </td>
13188
+ </tr>
13189
+ </tbody>
13190
+ </table>
12929
13191
 
12930
13192
  </div>
12931
13193
 
@@ -12942,7 +13204,7 @@ values.</p>
12942
13204
 
12943
13205
  <div class="doc doc-contents ">
12944
13206
 
12945
- <p>Determine whether a specified permission is exempt from evaluation.</p>
13207
+ <p>Determine whether a specified permission is exempt from evaluation.</p>
12946
13208
  <p>:param name: Permission name in the format <app_label>.<action>_<model></p>
12947
13209
 
12948
13210
  </div>
@@ -12960,7 +13222,7 @@ values.</p>
12960
13222
 
12961
13223
  <div class="doc doc-contents ">
12962
13224
 
12963
- <p>Populate the registry model features with new apps.</p>
13225
+ <p>Populate the registry model features with new apps.</p>
12964
13226
  <p>This function updates the registry model features.</p>
12965
13227
  <p>Behavior:
12966
13228
  - Defines a list of dictionaries called lookup_confs. Each dictionary contains:
@@ -12993,7 +13255,7 @@ values.</p>
12993
13255
 
12994
13256
  <div class="doc doc-contents ">
12995
13257
 
12996
- <p>Create or update a job_model record based on the metadata of the provided job_class.</p>
13258
+ <p>Create or update a job_model record based on the metadata of the provided job_class.</p>
12997
13259
  <p>Note that <code>job_model_class</code> and <code>job_queue_class</code> are parameters rather than local imports because
12998
13260
  this function may be called from various initialization processes (such as the "nautobot_database_ready" signal)
12999
13261
  and in that case we need to not import models ourselves.</p>
@@ -13016,7 +13278,7 @@ be calling the two-argument form of this function.</p>
13016
13278
 
13017
13279
  <div class="doc doc-contents ">
13018
13280
 
13019
- <p>field_name (str): f"cf_{cf.key}"</p>
13281
+ <p>field_name (str): f"cf_{cf.key}"</p>
13020
13282
  <p>Helper method to remove the "cf_" prefix</p>
13021
13283
 
13022
13284
  </div>
@@ -13034,7 +13296,7 @@ be calling the two-argument form of this function.</p>
13034
13296
 
13035
13297
  <div class="doc doc-contents ">
13036
13298
 
13037
- <p>Render a Jinja2 template with the provided context. Return the rendered content.</p>
13299
+ <p>Render a Jinja2 template with the provided context. Return the rendered content.</p>
13038
13300
 
13039
13301
  </div>
13040
13302
 
@@ -13051,7 +13313,7 @@ be calling the two-argument form of this function.</p>
13051
13313
 
13052
13314
  <div class="doc doc-contents ">
13053
13315
 
13054
- <p>Given a permission name, return the app_label, action, and model_name components. For example, "dcim.view_location"
13316
+ <p>Given a permission name, return the app_label, action, and model_name components. For example, "dcim.view_location"
13055
13317
  returns ("dcim", "view", "location").</p>
13056
13318
  <p>:param name: Permission name in the format <app_label>.<action>_<model></p>
13057
13319
 
@@ -13070,7 +13332,7 @@ returns ("dcim", "view", "location").</p>
13070
13332
 
13071
13333
  <div class="doc doc-contents ">
13072
13334
 
13073
- <p>Given a permission name, return the relevant ContentType and action. For example, "dcim.view_location" returns
13335
+ <p>Given a permission name, return the relevant ContentType and action. For example, "dcim.view_location" returns
13074
13336
  (Location, "view").</p>
13075
13337
  <p>:param name: Permission name in the format <app_label>.<action>_<model></p>
13076
13338
 
@@ -13089,7 +13351,7 @@ returns ("dcim", "view", "location").</p>
13089
13351
 
13090
13352
  <div class="doc doc-contents ">
13091
13353
 
13092
- <p>Map r, g, b values to a hex string.</p>
13354
+ <p>Map r, g, b values to a hex string.</p>
13093
13355
 
13094
13356
  </div>
13095
13357
 
@@ -13106,7 +13368,7 @@ returns ("dcim", "view", "location").</p>
13106
13368
 
13107
13369
  <div class="doc doc-contents ">
13108
13370
 
13109
- <p>Make an attempt at stripping potentially-sensitive information from the given string, bytes or iterable thereof.</p>
13371
+ <p>Make an attempt at stripping potentially-sensitive information from the given string, bytes or iterable thereof.</p>
13110
13372
  <p>Obviously this will never be 100% foolproof but we can at least try.</p>
13111
13373
  <p>Uses settings.SANITIZER_PATTERNS as the list of (regexp, repl) tuples to apply.</p>
13112
13374
 
@@ -13125,7 +13387,7 @@ returns ("dcim", "view", "location").</p>
13125
13387
 
13126
13388
  <div class="doc doc-contents ">
13127
13389
 
13128
- <p>Return a new dictionary of the different keys. The values of <code>destination_dict</code> are returned. Only the equality of
13390
+ <p>Return a new dictionary of the different keys. The values of <code>destination_dict</code> are returned. Only the equality of
13129
13391
  the first layer of keys/values is checked. <code>exclude</code> is a list or tuple of keys to be ignored.</p>
13130
13392
 
13131
13393
  </div>
@@ -13143,7 +13405,7 @@ the first layer of keys/values is checked. <code>exclude</code> is a list or tup
13143
13405
 
13144
13406
  <div class="doc doc-contents ">
13145
13407
 
13146
- <p>Swap Git status initials with its equivalent.</p>
13408
+ <p>Swap Git status initials with its equivalent.</p>
13147
13409
 
13148
13410
  </div>
13149
13411
 
@@ -13160,7 +13422,7 @@ the first layer of keys/values is checked. <code>exclude</code> is a list or tup
13160
13422
 
13161
13423
  <div class="doc doc-contents ">
13162
13424
 
13163
- <p>Returns a list of 2-tuples for use in the form field <code>choices</code> argument. Appends
13425
+ <p>Returns a list of 2-tuples for use in the form field <code>choices</code> argument. Appends
13164
13426
  worker count to the description.</p>
13165
13427
 
13166
13428
  </div>
@@ -13178,7 +13440,7 @@ worker count to the description.</p>
13178
13440
 
13179
13441
  <div class="doc doc-contents ">
13180
13442
 
13181
- <p>Convert the given length to meters.</p>
13443
+ <p>Convert the given length to meters.</p>
13182
13444
 
13183
13445
  </div>
13184
13446
 
@@ -13195,7 +13457,7 @@ worker count to the description.</p>
13195
13457
 
13196
13458
  <div class="doc doc-contents ">
13197
13459
 
13198
- <p>Helper function that wraps plugin model validator registered clean methods for all applicable models</p>
13460
+ <p>Helper function that wraps plugin model validator registered clean methods for all applicable models</p>
13199
13461
 
13200
13462
  </div>
13201
13463
 
@@ -13354,7 +13616,7 @@ worker count to the description.</p>
13354
13616
  <script id="__config" type="application/json">{"base": "../../..", "features": ["content.code.annotate", "content.code.copy", "content.tabs.link", "navigation.footer", "navigation.tabs", "navigation.tabs.sticky", "navigation.tracking", "search.highlight", "search.share", "search.suggest"], "search": "../../../assets/javascripts/workers/search.6ce7567c.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
13355
13617
 
13356
13618
 
13357
- <script src="../../../assets/javascripts/bundle.83f73b43.min.js"></script>
13619
+ <script src="../../../assets/javascripts/bundle.88dd0f4e.min.js"></script>
13358
13620
 
13359
13621
  <script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
13360
13622