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
 
@@ -7152,6 +7194,15 @@
7152
7194
  </span>
7153
7195
  </a>
7154
7196
 
7197
+ </li>
7198
+
7199
+ <li class="md-nav__item">
7200
+ <a href="#nautobot.apps.api.ModelViewSetMixin.get_queryset" class="md-nav__link">
7201
+ <span class="md-ellipsis">
7202
+ get_queryset
7203
+ </span>
7204
+ </a>
7205
+
7155
7206
  </li>
7156
7207
 
7157
7208
  <li class="md-nav__item">
@@ -8947,11 +8998,11 @@
8947
8998
 
8948
8999
 
8949
9000
  <li class="md-nav__item">
8950
- <a href="../../../development/core/local-k8s.html" class="md-nav__link">
9001
+ <a href="../../../development/core/minikube-dev-environment-for-k8s-jobs.html" class="md-nav__link">
8951
9002
 
8952
9003
 
8953
9004
  <span class="md-ellipsis">
8954
- Local Kubernetes Cluster
9005
+ Minikube Dev Environment for K8s Jobs
8955
9006
  </span>
8956
9007
 
8957
9008
 
@@ -10067,6 +10118,15 @@
10067
10118
  </span>
10068
10119
  </a>
10069
10120
 
10121
+ </li>
10122
+
10123
+ <li class="md-nav__item">
10124
+ <a href="#nautobot.apps.api.ModelViewSetMixin.get_queryset" class="md-nav__link">
10125
+ <span class="md-ellipsis">
10126
+ get_queryset
10127
+ </span>
10128
+ </a>
10129
+
10070
10130
  </li>
10071
10131
 
10072
10132
  <li class="md-nav__item">
@@ -10740,7 +10800,12 @@
10740
10800
 
10741
10801
  <div class="doc doc-contents first">
10742
10802
 
10743
- <p>Helpers for an app to implement a REST API.</p>
10803
+ <p>Helpers for an app to implement a REST API.</p>
10804
+
10805
+
10806
+
10807
+
10808
+
10744
10809
 
10745
10810
 
10746
10811
 
@@ -10766,10 +10831,15 @@
10766
10831
 
10767
10832
  <div class="doc doc-contents ">
10768
10833
  <p class="doc doc-class-bases">
10769
- Bases: <code><autoref identifier="nautobot.core.api.views.NautobotAPIVersionMixin" optional hover>NautobotAPIVersionMixin</autoref></code>, <code><autoref identifier="rest_framework.routers.APIRootView" optional hover>APIRootView</autoref></code></p>
10834
+ Bases: <code><span title="nautobot.core.api.views.NautobotAPIVersionMixin">NautobotAPIVersionMixin</span></code>, <code><span title="rest_framework.routers.APIRootView">APIRootView</span></code></p>
10835
+
10836
+
10837
+ <p>Extends DRF's base APIRootView class to enforce user authentication.</p>
10838
+
10839
+
10840
+
10770
10841
 
10771
10842
 
10772
- <p>Extends DRF's base APIRootView class to enforce user authentication.</p>
10773
10843
 
10774
10844
 
10775
10845
 
@@ -10805,10 +10875,10 @@
10805
10875
 
10806
10876
  <div class="doc doc-contents ">
10807
10877
  <p class="doc doc-class-bases">
10808
- Bases: <code><autoref identifier="nautobot.core.api.serializers.OptInFieldsMixin" optional hover>OptInFieldsMixin</autoref></code>, <code><autoref identifier="rest_framework.serializers.HyperlinkedModelSerializer" optional hover>HyperlinkedModelSerializer</autoref></code></p>
10878
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.api.serializers.OptInFieldsMixin" href="#nautobot.apps.api.OptInFieldsMixin">OptInFieldsMixin</a></code>, <code><span title="rest_framework.serializers.HyperlinkedModelSerializer">HyperlinkedModelSerializer</span></code></p>
10809
10879
 
10810
10880
 
10811
- <p>This base serializer implements common fields and logic for all ModelSerializers.</p>
10881
+ <p>This base serializer implements common fields and logic for all ModelSerializers.</p>
10812
10882
  <p>Namely, it:</p>
10813
10883
  <ul>
10814
10884
  <li>defines the <code>display</code> field which exposes a human friendly value for the given object.</li>
@@ -10825,6 +10895,11 @@
10825
10895
 
10826
10896
 
10827
10897
 
10898
+
10899
+
10900
+
10901
+
10902
+
10828
10903
  <div class="doc doc-children">
10829
10904
 
10830
10905
 
@@ -10849,7 +10924,7 @@
10849
10924
 
10850
10925
  <div class="doc doc-contents ">
10851
10926
 
10852
- <p>Return whether this is a nested serializer.</p>
10927
+ <p>Return whether this is a nested serializer.</p>
10853
10928
  </div>
10854
10929
 
10855
10930
  </div>
@@ -10867,7 +10942,7 @@
10867
10942
 
10868
10943
  <div class="doc doc-contents ">
10869
10944
 
10870
- <p>Instantiate a BaseModelSerializer.</p>
10945
+ <p>Instantiate a BaseModelSerializer.</p>
10871
10946
  <p>The force_csv kwarg allows you to force _is_csv_request() to evaluate True without passing a Request object,
10872
10947
  which is necessary to be able to export appropriately structured CSV from a Job that doesn't have a Request.</p>
10873
10948
 
@@ -10886,7 +10961,7 @@ which is necessary to be able to export appropriately structured CSV from a Job
10886
10961
 
10887
10962
  <div class="doc doc-contents ">
10888
10963
 
10889
- <p>Return a two tuple of (cls, kwargs) to build a serializer field with.</p>
10964
+ <p>Return a two tuple of (cls, kwargs) to build a serializer field with.</p>
10890
10965
 
10891
10966
  </div>
10892
10967
 
@@ -10903,7 +10978,7 @@ which is necessary to be able to export appropriately structured CSV from a Job
10903
10978
 
10904
10979
  <div class="doc doc-contents ">
10905
10980
 
10906
- <p>Create a property field for model methods and properties.</p>
10981
+ <p>Create a property field for model methods and properties.</p>
10907
10982
 
10908
10983
  </div>
10909
10984
 
@@ -10920,7 +10995,7 @@ which is necessary to be able to export appropriately structured CSV from a Job
10920
10995
 
10921
10996
  <div class="doc doc-contents ">
10922
10997
 
10923
- <p>Override DRF's default relational-field construction to be app-aware.</p>
10998
+ <p>Override DRF's default relational-field construction to be app-aware.</p>
10924
10999
 
10925
11000
  </div>
10926
11001
 
@@ -10937,7 +11012,7 @@ which is necessary to be able to export appropriately structured CSV from a Job
10937
11012
 
10938
11013
  <div class="doc doc-contents ">
10939
11014
 
10940
- <p>Override DRF's default 'url' field construction to be app-aware.</p>
11015
+ <p>Override DRF's default 'url' field construction to be app-aware.</p>
10941
11016
 
10942
11017
  </div>
10943
11018
 
@@ -10954,7 +11029,7 @@ which is necessary to be able to export appropriately structured CSV from a Job
10954
11029
 
10955
11030
  <div class="doc doc-contents ">
10956
11031
 
10957
- <p>Prepend or append the given field_name to <code>fields</code> and optionally self.Meta.opt_in_fields as well.</p>
11032
+ <p>Prepend or append the given field_name to <code>fields</code> and optionally self.Meta.opt_in_fields as well.</p>
10958
11033
 
10959
11034
  </div>
10960
11035
 
@@ -10971,7 +11046,7 @@ which is necessary to be able to export appropriately structured CSV from a Job
10971
11046
 
10972
11047
  <div class="doc doc-contents ">
10973
11048
 
10974
- <p>Return either the <code>display</code> property of the instance or <code>str(instance)</code></p>
11049
+ <p>Return either the <code>display</code> property of the instance or <code>str(instance)</code></p>
10975
11050
 
10976
11051
  </div>
10977
11052
 
@@ -10988,7 +11063,7 @@ which is necessary to be able to export appropriately structured CSV from a Job
10988
11063
 
10989
11064
  <div class="doc doc-contents ">
10990
11065
 
10991
- <p>Override get_field_names() to add some custom logic.</p>
11066
+ <p>Override get_field_names() to add some custom logic.</p>
10992
11067
  <p>Assuming that we follow the pattern where <code>fields = "__all__" for the vast majority of serializers in Nautobot,
10993
11068
  we do not strictly need to use this method to protect against inadvertently omitting standard fields
10994
11069
  like</code>display<code>,</code>created<code>, and</code>last_updated`. However, we continue to do as a bit of redundant safety.</p>
@@ -11021,7 +11096,7 @@ way of <em>excluding</em> fields that we <em>don't</em> want to include by defau
11021
11096
  <div class="doc doc-contents ">
11022
11097
 
11023
11098
 
11024
- <p>Support bulk deletion of objects using the list endpoint for a model. Accepts a DELETE action with a list of one
11099
+ <p>Support bulk deletion of objects using the list endpoint for a model. Accepts a DELETE action with a list of one
11025
11100
  or more JSON objects, each specifying the UUID of an object to be deleted. For example:</p>
11026
11101
  <p>DELETE /api/dcim/locations/
11027
11102
  [
@@ -11032,6 +11107,11 @@ or more JSON objects, each specifying the UUID of an object to be deleted. For e
11032
11107
 
11033
11108
 
11034
11109
 
11110
+
11111
+
11112
+
11113
+
11114
+
11035
11115
  <div class="doc doc-children">
11036
11116
 
11037
11117
 
@@ -11064,7 +11144,7 @@ or more JSON objects, each specifying the UUID of an object to be deleted. For e
11064
11144
  <div class="doc doc-contents ">
11065
11145
 
11066
11146
 
11067
- <p>Support bulk modification of objects using the list endpoint for a model. Accepts a PATCH action with a list of one
11147
+ <p>Support bulk modification of objects using the list endpoint for a model. Accepts a PATCH action with a list of one
11068
11148
  or more JSON objects, each specifying the UUID of an object to be updated as well as the attributes to be set.
11069
11149
  For example:</p>
11070
11150
  <p>PATCH /api/dcim/locations/
@@ -11082,6 +11162,11 @@ For example:</p>
11082
11162
 
11083
11163
 
11084
11164
 
11165
+
11166
+
11167
+
11168
+
11169
+
11085
11170
  <div class="doc doc-children">
11086
11171
 
11087
11172
 
@@ -11113,16 +11198,21 @@ For example:</p>
11113
11198
 
11114
11199
  <div class="doc doc-contents ">
11115
11200
  <p class="doc doc-class-bases">
11116
- Bases: <code><autoref identifier="rest_framework.serializers.Field" optional hover>Field</autoref></code></p>
11201
+ Bases: <code><span title="rest_framework.serializers.Field">Field</span></code></p>
11117
11202
 
11118
11203
 
11119
- <p>Represent a ChoiceField as {'value': <DB value>, 'label': <string>}. Accepts a single value on write.</p>
11204
+ <p>Represent a ChoiceField as {'value': <DB value>, 'label': <string>}. Accepts a single value on write.</p>
11120
11205
  <p>:param choices: An iterable of choices in the form (value, key).
11121
11206
  :param allow_blank: Allow blank values in addition to the listed choices.</p>
11122
11207
 
11123
11208
 
11124
11209
 
11125
11210
 
11211
+
11212
+
11213
+
11214
+
11215
+
11126
11216
  <div class="doc doc-children">
11127
11217
 
11128
11218
 
@@ -11154,10 +11244,15 @@ For example:</p>
11154
11244
 
11155
11245
  <div class="doc doc-contents ">
11156
11246
  <p class="doc doc-class-bases">
11157
- Bases: <code><autoref identifier="rest_framework.relations.RelatedField" optional hover>RelatedField</autoref></code></p>
11247
+ Bases: <code><span title="rest_framework.relations.RelatedField">RelatedField</span></code></p>
11248
+
11249
+
11250
+ <p>Represent a ContentType as '<app_label>.<model>'</p>
11251
+
11252
+
11253
+
11158
11254
 
11159
11255
 
11160
- <p>Represent a ContentType as '<app_label>.<model>'</p>
11161
11256
 
11162
11257
 
11163
11258
 
@@ -11193,10 +11288,15 @@ For example:</p>
11193
11288
 
11194
11289
  <div class="doc doc-contents ">
11195
11290
  <p class="doc doc-class-bases">
11196
- Bases: <code><autoref identifier="nautobot.core.api.serializers.ValidatedModelSerializer" optional hover>ValidatedModelSerializer</autoref></code></p>
11291
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.api.serializers.ValidatedModelSerializer" href="#nautobot.apps.api.ValidatedModelSerializer">ValidatedModelSerializer</a></code></p>
11292
+
11293
+
11294
+ <p>Extends ModelSerializer to render any CustomFields and their values associated with an object.</p>
11295
+
11296
+
11297
+
11197
11298
 
11198
11299
 
11199
- <p>Extends ModelSerializer to render any CustomFields and their values associated with an object.</p>
11200
11300
 
11201
11301
 
11202
11302
 
@@ -11222,7 +11322,7 @@ For example:</p>
11222
11322
 
11223
11323
  <div class="doc doc-contents ">
11224
11324
 
11225
- <p>Ensure that "custom_fields" and "computed_fields" are included appropriately.</p>
11325
+ <p>Ensure that "custom_fields" and "computed_fields" are included appropriately.</p>
11226
11326
 
11227
11327
  </div>
11228
11328
 
@@ -11249,10 +11349,15 @@ For example:</p>
11249
11349
 
11250
11350
  <div class="doc doc-contents ">
11251
11351
  <p class="doc doc-class-bases">
11252
- Bases: <code><autoref identifier="nautobot.core.api.views.ModelViewSet" optional hover>ModelViewSet</autoref></code></p>
11352
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.api.views.ModelViewSet" href="#nautobot.apps.api.ModelViewSet">ModelViewSet</a></code></p>
11353
+
11354
+
11355
+ <p>Include the applicable set of CustomFields in the ModelViewSet context.</p>
11356
+
11357
+
11358
+
11253
11359
 
11254
11360
 
11255
- <p>Include the applicable set of CustomFields in the ModelViewSet context.</p>
11256
11361
 
11257
11362
 
11258
11363
 
@@ -11288,10 +11393,15 @@ For example:</p>
11288
11393
 
11289
11394
  <div class="doc doc-contents ">
11290
11395
  <p class="doc doc-class-bases">
11291
- Bases: <code><autoref identifier="nautobot.core.api.views.NautobotAPIVersionMixin" optional hover>NautobotAPIVersionMixin</autoref></code>, <code><autoref identifier="nautobot.core.api.views.BulkUpdateModelMixin" optional hover>BulkUpdateModelMixin</autoref></code>, <code><autoref identifier="nautobot.core.api.views.BulkDestroyModelMixin" optional hover>BulkDestroyModelMixin</autoref></code>, <code><autoref identifier="nautobot.core.api.views.ModelViewSetMixin" optional hover>ModelViewSetMixin</autoref></code>, <code><autoref identifier="rest_framework.viewsets.ModelViewSet" optional hover>ModelViewSet</autoref></code></p>
11396
+ Bases: <code><span title="nautobot.core.api.views.NautobotAPIVersionMixin">NautobotAPIVersionMixin</span></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.api.views.BulkUpdateModelMixin" href="#nautobot.apps.api.BulkUpdateModelMixin">BulkUpdateModelMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.api.views.BulkDestroyModelMixin" href="#nautobot.apps.api.BulkDestroyModelMixin">BulkDestroyModelMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.api.views.ModelViewSetMixin" href="#nautobot.apps.api.ModelViewSetMixin">ModelViewSetMixin</a></code>, <code><span title="rest_framework.viewsets.ModelViewSet">ModelViewSet</span></code></p>
11397
+
11398
+
11399
+ <p>Extend DRF's ModelViewSet to support bulk update and delete functions.</p>
11400
+
11401
+
11402
+
11292
11403
 
11293
11404
 
11294
- <p>Extend DRF's ModelViewSet to support bulk update and delete functions.</p>
11295
11405
 
11296
11406
 
11297
11407
 
@@ -11331,6 +11441,11 @@ For example:</p>
11331
11441
 
11332
11442
 
11333
11443
 
11444
+
11445
+
11446
+
11447
+
11448
+
11334
11449
  <div class="doc doc-children">
11335
11450
 
11336
11451
 
@@ -11352,7 +11467,25 @@ For example:</p>
11352
11467
 
11353
11468
  <div class="doc doc-contents ">
11354
11469
 
11355
- <p>Extend rest_framework.generics.GenericAPIView.get_object to allow "pk" lookups to use a composite-key.</p>
11470
+ <p>Extend rest_framework.generics.GenericAPIView.get_object to allow "pk" lookups to use a composite-key.</p>
11471
+
11472
+ </div>
11473
+
11474
+ </div>
11475
+
11476
+ <div class="doc doc-object doc-function">
11477
+
11478
+
11479
+ <h3 id="nautobot.apps.api.ModelViewSetMixin.get_queryset" class="doc doc-heading">
11480
+ <code class="highlight language-python"><span class="n">get_queryset</span><span class="p">()</span></code>
11481
+
11482
+ <a href="#nautobot.apps.api.ModelViewSetMixin.get_queryset" class="headerlink" title="Permanent link">&para;</a></h3>
11483
+
11484
+
11485
+ <div class="doc doc-contents ">
11486
+
11487
+ <p>Attempt to optimize the queryset based on the fields present in the associated serializer.</p>
11488
+ <p>See similar logic in nautobot.core.tables.BaseTable.</p>
11356
11489
 
11357
11490
  </div>
11358
11491
 
@@ -11369,7 +11502,7 @@ For example:</p>
11369
11502
 
11370
11503
  <div class="doc doc-contents ">
11371
11504
 
11372
- <p>Runs anything that needs to occur prior to calling the method handler.</p>
11505
+ <p>Runs anything that needs to occur prior to calling the method handler.</p>
11373
11506
  <p>Override of internal Django Rest Framework API.</p>
11374
11507
 
11375
11508
  </div>
@@ -11387,7 +11520,7 @@ For example:</p>
11387
11520
 
11388
11521
  <div class="doc doc-contents ">
11389
11522
 
11390
- <p>Restrict the view's queryset to allow only the permitted objects for the given request.</p>
11523
+ <p>Restrict the view's queryset to allow only the permitted objects for the given request.</p>
11391
11524
  <p>Subclasses (such as nautobot.extras.api.views.JobModelViewSet) may wish to override this.</p>
11392
11525
  <p>Called by initial(), below.</p>
11393
11526
 
@@ -11416,10 +11549,15 @@ For example:</p>
11416
11549
 
11417
11550
  <div class="doc doc-contents ">
11418
11551
  <p class="doc doc-class-bases">
11419
- Bases: <code><autoref identifier="rest_framework.serializers.MultipleChoiceField" optional hover>MultipleChoiceField</autoref></code></p>
11552
+ Bases: <code><span title="rest_framework.serializers.MultipleChoiceField">MultipleChoiceField</span></code></p>
11553
+
11554
+
11555
+ <p>A MultipleChoiceField that renders the received value as a JSON-compatible list rather than a set.</p>
11556
+
11557
+
11558
+
11420
11559
 
11421
11560
 
11422
- <p>A MultipleChoiceField that renders the received value as a JSON-compatible list rather than a set.</p>
11423
11561
 
11424
11562
 
11425
11563
 
@@ -11445,7 +11583,7 @@ For example:</p>
11445
11583
 
11446
11584
  <div class="doc doc-contents ">
11447
11585
 
11448
- <p>Overload default choices handling to also accept a callable.</p>
11586
+ <p>Overload default choices handling to also accept a callable.</p>
11449
11587
 
11450
11588
  </div>
11451
11589
 
@@ -11472,10 +11610,15 @@ For example:</p>
11472
11610
 
11473
11611
  <div class="doc doc-contents ">
11474
11612
  <p class="doc doc-class-bases">
11475
- Bases: <code><autoref identifier="drf_spectacular.openapi.AutoSchema" optional hover>AutoSchema</autoref></code></p>
11613
+ Bases: <code><span title="drf_spectacular.openapi.AutoSchema">AutoSchema</span></code></p>
11614
+
11615
+
11616
+ <p>Nautobot-specific extensions to drf-spectacular's AutoSchema.</p>
11617
+
11618
+
11619
+
11476
11620
 
11477
11621
 
11478
- <p>Nautobot-specific extensions to drf-spectacular's AutoSchema.</p>
11479
11622
 
11480
11623
 
11481
11624
 
@@ -11504,7 +11647,7 @@ For example:</p>
11504
11647
 
11505
11648
  <div class="doc doc-contents ">
11506
11649
 
11507
- <p>Custom property for convenience.</p>
11650
+ <p>Custom property for convenience.</p>
11508
11651
  </div>
11509
11652
 
11510
11653
  </div>
@@ -11525,7 +11668,7 @@ For example:</p>
11525
11668
 
11526
11669
  <div class="doc doc-contents ">
11527
11670
 
11528
- <p>Custom property for convenience.</p>
11671
+ <p>Custom property for convenience.</p>
11529
11672
  </div>
11530
11673
 
11531
11674
  </div>
@@ -11543,7 +11686,7 @@ For example:</p>
11543
11686
 
11544
11687
  <div class="doc doc-contents ">
11545
11688
 
11546
- <p>Get the appropriate description for a given API endpoint.</p>
11689
+ <p>Get the appropriate description for a given API endpoint.</p>
11547
11690
  <p>By default, if a specific action doesn't have its own docstring, and neither does the view class,
11548
11691
  drf-spectacular will walk up the MRO of the view class until it finds a docstring, and use that.
11549
11692
  Most of our viewsets (for better or for worse) do not have docstrings, and so it'll find and use the generic
@@ -11566,7 +11709,7 @@ make an attempt at rendering a basically accurate default description.</p>
11566
11709
 
11567
11710
  <div class="doc doc-contents ">
11568
11711
 
11569
- <p>Nautobot's custom bulk operations, even though they return a list of records, are NOT filterable.</p>
11712
+ <p>Nautobot's custom bulk operations, even though they return a list of records, are NOT filterable.</p>
11570
11713
 
11571
11714
  </div>
11572
11715
 
@@ -11583,7 +11726,7 @@ make an attempt at rendering a basically accurate default description.</p>
11583
11726
 
11584
11727
  <div class="doc doc-contents ">
11585
11728
 
11586
- <p>Extend the base method to handle Nautobot's REST API bulk operations.</p>
11729
+ <p>Extend the base method to handle Nautobot's REST API bulk operations.</p>
11587
11730
  <p>Without this extension, every one of our ModelViewSet classes will result in drf-spectacular complaining
11588
11731
  about operationId collisions, e.g. between DELETE /api/dcim/devices/ and DELETE /api/dcim/devices/<pk>/ would
11589
11732
  both get resolved to the same "dcim_devices_destroy" operation-id and this would make drf-spectacular complain.</p>
@@ -11604,7 +11747,7 @@ both get resolved to the same "dcim_devices_destroy" operation-id and this would
11604
11747
 
11605
11748
  <div class="doc doc-contents ">
11606
11749
 
11607
- <p>Return the request serializer (used for describing/parsing the request payload) for this endpoint.</p>
11750
+ <p>Return the request serializer (used for describing/parsing the request payload) for this endpoint.</p>
11608
11751
  <p>We override the default drf-spectacular behavior for the case where the endpoint describes a write request
11609
11752
  with required data (PATCH, POST, PUT). In those cases we replace FooSerializer with a dynamically-defined
11610
11753
  WritableFooSerializer class in order to more accurately represent the available options on write.</p>
@@ -11626,7 +11769,7 @@ require a list of serializers as input, rather than a single one.</p>
11626
11769
 
11627
11770
  <div class="doc doc-contents ">
11628
11771
 
11629
- <p>Return the response serializer (used for describing the response payload) for this endpoint.</p>
11772
+ <p>Return the response serializer (used for describing the response payload) for this endpoint.</p>
11630
11773
  <p>We override the default drf-spectacular behavior for the case where the endpoint describes a write request
11631
11774
  to a bulk endpoint, which returns a list of serializers, rather than a single one.</p>
11632
11775
 
@@ -11645,7 +11788,7 @@ to a bulk endpoint, which returns a list of serializers, rather than a single on
11645
11788
 
11646
11789
  <div class="doc doc-contents ">
11647
11790
 
11648
- <p>Get the serializer's ref_name Meta attribute if set, or else derive a ref_name automatically.</p>
11791
+ <p>Get the serializer's ref_name Meta attribute if set, or else derive a ref_name automatically.</p>
11649
11792
  <p>Based on drf_yasg.utils.get_serializer_ref_name().</p>
11650
11793
 
11651
11794
  </div>
@@ -11663,7 +11806,7 @@ to a bulk endpoint, which returns a list of serializers, rather than a single on
11663
11806
 
11664
11807
  <div class="doc doc-contents ">
11665
11808
 
11666
- <p>Given a FooSerializer instance, look up or construct a [Bulk]WritableFooSerializer class if necessary.</p>
11809
+ <p>Given a FooSerializer instance, look up or construct a [Bulk]WritableFooSerializer class if necessary.</p>
11667
11810
  <p>If no [Bulk]WritableFooSerializer class is needed, returns None instead.</p>
11668
11811
 
11669
11812
  </div>
@@ -11681,7 +11824,7 @@ to a bulk endpoint, which returns a list of serializers, rather than a single on
11681
11824
 
11682
11825
  <div class="doc doc-contents ">
11683
11826
 
11684
- <p>Re-add required <code>id</code> field on bulk_partial_update action.</p>
11827
+ <p>Re-add required <code>id</code> field on bulk_partial_update action.</p>
11685
11828
  <p>drf-spectacular clears the <code>required</code> list for any partial serializers in its <code>_map_basic_serializer()</code>,
11686
11829
  but Nautobot bulk partial updates require the <code>id</code> field to be specified for each object to update.</p>
11687
11830
 
@@ -11710,10 +11853,15 @@ but Nautobot bulk partial updates require the <code>id</code> field to be specif
11710
11853
 
11711
11854
  <div class="doc doc-contents ">
11712
11855
  <p class="doc doc-class-bases">
11713
- Bases: <code><autoref identifier="rest_framework.parsers.BaseParser" optional hover>BaseParser</autoref></code></p>
11856
+ Bases: <code><span title="rest_framework.parsers.BaseParser">BaseParser</span></code></p>
11857
+
11858
+
11859
+ <p>Counterpart to NautobotCSVRenderer - import CSV data.</p>
11860
+
11861
+
11862
+
11714
11863
 
11715
11864
 
11716
- <p>Counterpart to NautobotCSVRenderer - import CSV data.</p>
11717
11865
 
11718
11866
 
11719
11867
 
@@ -11739,7 +11887,7 @@ but Nautobot bulk partial updates require the <code>id</code> field to be specif
11739
11887
 
11740
11888
  <div class="doc doc-contents ">
11741
11889
 
11742
- <p>Parse a single row of CSV data (represented as a dict) into a dict suitable for consumption by the serializer.</p>
11890
+ <p>Parse a single row of CSV data (represented as a dict) into a dict suitable for consumption by the serializer.</p>
11743
11891
  <p>TODO: it would be more elegant if our serializer fields knew how to deserialize the CSV data themselves;
11744
11892
  could we then literally have the parser just return list(reader) and not need this function at all?</p>
11745
11893
 
@@ -11768,10 +11916,15 @@ could we then literally have the parser just return list(reader) and not need th
11768
11916
 
11769
11917
  <div class="doc doc-contents ">
11770
11918
  <p class="doc doc-class-bases">
11771
- Bases: <code><autoref identifier="nautobot.core.api.mixins.WritableSerializerMixin" optional hover>WritableSerializerMixin</autoref></code>, <code><autoref identifier="rest_framework.serializers.HyperlinkedRelatedField" optional hover>HyperlinkedRelatedField</autoref></code></p>
11919
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.api.mixins.WritableSerializerMixin" href="#nautobot.apps.api.WritableSerializerMixin">WritableSerializerMixin</a></code>, <code><span title="rest_framework.serializers.HyperlinkedRelatedField">HyperlinkedRelatedField</span></code></p>
11920
+
11921
+
11922
+ <p>Extend HyperlinkedRelatedField to include URL namespace-awareness, add 'object_type' field, and read composite-keys.</p>
11923
+
11924
+
11925
+
11772
11926
 
11773
11927
 
11774
- <p>Extend HyperlinkedRelatedField to include URL namespace-awareness, add 'object_type' field, and read composite-keys.</p>
11775
11928
 
11776
11929
 
11777
11930
 
@@ -11797,7 +11950,7 @@ could we then literally have the parser just return list(reader) and not need th
11797
11950
 
11798
11951
  <div class="doc doc-contents ">
11799
11952
 
11800
- <p>Override DRF's namespace-unaware default view_name logic for HyperlinkedRelatedField.</p>
11953
+ <p>Override DRF's namespace-unaware default view_name logic for HyperlinkedRelatedField.</p>
11801
11954
  <p>DRF defaults to '{model_name}-detail' instead of '{app_label}:{model_name}-detail'.</p>
11802
11955
 
11803
11956
  </div>
@@ -11815,7 +11968,7 @@ could we then literally have the parser just return list(reader) and not need th
11815
11968
 
11816
11969
  <div class="doc doc-contents ">
11817
11970
 
11818
- <p>Convert potentially nested representation to a model instance.</p>
11971
+ <p>Convert potentially nested representation to a model instance.</p>
11819
11972
 
11820
11973
  </div>
11821
11974
 
@@ -11832,7 +11985,7 @@ could we then literally have the parser just return list(reader) and not need th
11832
11985
 
11833
11986
  <div class="doc doc-contents ">
11834
11987
 
11835
- <p>Convert URL representation to a brief nested representation.</p>
11988
+ <p>Convert URL representation to a brief nested representation.</p>
11836
11989
 
11837
11990
  </div>
11838
11991
 
@@ -11859,15 +12012,20 @@ could we then literally have the parser just return list(reader) and not need th
11859
12012
 
11860
12013
  <div class="doc doc-contents ">
11861
12014
  <p class="doc doc-class-bases">
11862
- Bases: <code><autoref identifier="nautobot.core.api.serializers.RelationshipModelSerializerMixin" optional hover>RelationshipModelSerializerMixin</autoref></code>, <code><autoref identifier="nautobot.core.api.serializers.CustomFieldModelSerializerMixin" optional hover>CustomFieldModelSerializerMixin</autoref></code>, <code><autoref identifier="nautobot.core.api.serializers.NotesSerializerMixin" optional hover>NotesSerializerMixin</autoref></code>, <code><autoref identifier="nautobot.core.api.serializers.ValidatedModelSerializer" optional hover>ValidatedModelSerializer</autoref></code></p>
12015
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.api.serializers.RelationshipModelSerializerMixin" href="#nautobot.apps.api.RelationshipModelSerializerMixin">RelationshipModelSerializerMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.api.serializers.CustomFieldModelSerializerMixin" href="#nautobot.apps.api.CustomFieldModelSerializerMixin">CustomFieldModelSerializerMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.api.serializers.NotesSerializerMixin" href="#nautobot.apps.api.NotesSerializerMixin">NotesSerializerMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.api.serializers.ValidatedModelSerializer" href="#nautobot.apps.api.ValidatedModelSerializer">ValidatedModelSerializer</a></code></p>
11863
12016
 
11864
12017
 
11865
- <p>Base class to use for serializers based on OrganizationalModel or PrimaryModel.</p>
12018
+ <p>Base class to use for serializers based on OrganizationalModel or PrimaryModel.</p>
11866
12019
  <p>Can also be used for models derived from BaseModel, so long as they support custom fields, notes, and relationships.</p>
11867
12020
 
11868
12021
 
11869
12022
 
11870
12023
 
12024
+
12025
+
12026
+
12027
+
12028
+
11871
12029
  <div class="doc doc-children">
11872
12030
 
11873
12031
 
@@ -11899,15 +12057,20 @@ could we then literally have the parser just return list(reader) and not need th
11899
12057
 
11900
12058
  <div class="doc doc-contents ">
11901
12059
  <p class="doc doc-class-bases">
11902
- Bases: <code><autoref identifier="nautobot.extras.api.views.NotesViewSetMixin" optional hover>NotesViewSetMixin</autoref></code>, <code><autoref identifier="nautobot.extras.api.views.CustomFieldModelViewSet" optional hover>CustomFieldModelViewSet</autoref></code></p>
12060
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.extras.api.views.NotesViewSetMixin" href="#nautobot.apps.api.NotesViewSetMixin">NotesViewSetMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.extras.api.views.CustomFieldModelViewSet" href="#nautobot.apps.api.CustomFieldModelViewSet">CustomFieldModelViewSet</a></code></p>
11903
12061
 
11904
12062
 
11905
- <p>Base class to use for API ViewSets based on OrganizationalModel or PrimaryModel.</p>
12063
+ <p>Base class to use for API ViewSets based on OrganizationalModel or PrimaryModel.</p>
11906
12064
  <p>Can also be used for models derived from BaseModel, so long as they support Notes.</p>
11907
12065
 
11908
12066
 
11909
12067
 
11910
12068
 
12069
+
12070
+
12071
+
12072
+
12073
+
11911
12074
  <div class="doc doc-children">
11912
12075
 
11913
12076
 
@@ -11939,10 +12102,15 @@ could we then literally have the parser just return list(reader) and not need th
11939
12102
 
11940
12103
  <div class="doc doc-contents ">
11941
12104
  <p class="doc doc-class-bases">
11942
- Bases: <code><autoref identifier="nautobot.core.api.serializers.BaseModelSerializer" optional hover>BaseModelSerializer</autoref></code></p>
12105
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.api.serializers.BaseModelSerializer" href="#nautobot.apps.api.BaseModelSerializer">BaseModelSerializer</a></code></p>
12106
+
12107
+
12108
+ <p>Extend Serializer with a <code>notes</code> field.</p>
12109
+
12110
+
12111
+
11943
12112
 
11944
12113
 
11945
- <p>Extend Serializer with a <code>notes</code> field.</p>
11946
12114
 
11947
12115
 
11948
12116
 
@@ -11968,7 +12136,7 @@ could we then literally have the parser just return list(reader) and not need th
11968
12136
 
11969
12137
  <div class="doc doc-contents ">
11970
12138
 
11971
- <p>Ensure that fields includes "notes_url" field if applicable.</p>
12139
+ <p>Ensure that fields includes "notes_url" field if applicable.</p>
11972
12140
 
11973
12141
  </div>
11974
12142
 
@@ -11999,6 +12167,11 @@ could we then literally have the parser just return list(reader) and not need th
11999
12167
 
12000
12168
 
12001
12169
 
12170
+
12171
+
12172
+
12173
+
12174
+
12002
12175
  <div class="doc doc-children">
12003
12176
 
12004
12177
 
@@ -12021,10 +12194,15 @@ could we then literally have the parser just return list(reader) and not need th
12021
12194
 
12022
12195
  <div class="doc doc-contents ">
12023
12196
  <p class="doc doc-class-bases">
12024
- Bases: <code><autoref identifier="nautobot.core.api.authentication.TokenPermissions" optional hover>TokenPermissions</autoref></code></p>
12197
+ Bases: <code><span title="nautobot.core.api.authentication.TokenPermissions">TokenPermissions</span></code></p>
12198
+
12199
+
12200
+ <p>As nautobot.core.api.authentication.TokenPermissions, but enforcing add_note permission.</p>
12201
+
12202
+
12203
+
12025
12204
 
12026
12205
 
12027
- <p>As nautobot.core.api.authentication.TokenPermissions, but enforcing add_note permission.</p>
12028
12206
 
12029
12207
 
12030
12208
 
@@ -12059,7 +12237,7 @@ could we then literally have the parser just return list(reader) and not need th
12059
12237
 
12060
12238
  <div class="doc doc-contents ">
12061
12239
 
12062
- <p>API methods for returning or creating notes on an object.</p>
12240
+ <p>API methods for returning or creating notes on an object.</p>
12063
12241
 
12064
12242
  </div>
12065
12243
 
@@ -12076,7 +12254,7 @@ could we then literally have the parser just return list(reader) and not need th
12076
12254
 
12077
12255
  <div class="doc doc-contents ">
12078
12256
 
12079
- <p>Apply "view" permissions on the POST /notes/ endpoint, otherwise as ModelViewSetMixin.</p>
12257
+ <p>Apply "view" permissions on the POST /notes/ endpoint, otherwise as ModelViewSetMixin.</p>
12080
12258
 
12081
12259
  </div>
12082
12260
 
@@ -12103,10 +12281,15 @@ could we then literally have the parser just return list(reader) and not need th
12103
12281
 
12104
12282
  <div class="doc doc-contents ">
12105
12283
  <p class="doc doc-class-bases">
12106
- Bases: <code><autoref identifier="rest_framework.serializers.CharField" optional hover>CharField</autoref></code></p>
12284
+ Bases: <code><span title="rest_framework.serializers.CharField">CharField</span></code></p>
12285
+
12286
+
12287
+ <p>Represent the ContentType of this serializer's model as "<app_label>.<model>".</p>
12288
+
12289
+
12290
+
12107
12291
 
12108
12292
 
12109
- <p>Represent the ContentType of this serializer's model as "<app_label>.<model>".</p>
12110
12293
 
12111
12294
 
12112
12295
 
@@ -12132,7 +12315,7 @@ could we then literally have the parser just return list(reader) and not need th
12132
12315
 
12133
12316
  <div class="doc doc-contents ">
12134
12317
 
12135
- <p>Default read_only to True as this should never be a writable field.</p>
12318
+ <p>Default read_only to True as this should never be a writable field.</p>
12136
12319
 
12137
12320
  </div>
12138
12321
 
@@ -12149,7 +12332,7 @@ could we then literally have the parser just return list(reader) and not need th
12149
12332
 
12150
12333
  <div class="doc doc-contents ">
12151
12334
 
12152
- <p>Get the content-type of this serializer's model.</p>
12335
+ <p>Get the content-type of this serializer's model.</p>
12153
12336
  <p>Implemented this way because <code>_value</code> may be None when generating the schema.</p>
12154
12337
 
12155
12338
  </div>
@@ -12178,8 +12361,13 @@ could we then literally have the parser just return list(reader) and not need th
12178
12361
  <div class="doc doc-contents ">
12179
12362
 
12180
12363
 
12181
- <p>A serializer mixin that takes an additional <code>opt_in_fields</code> argument that controls
12182
- which fields should be displayed.</p>
12364
+ <p>Serializer mixin that adjusts its fields based on the <code>include</code> and <code>exclude_m2m</code> query parameters in a request.</p>
12365
+ <p>The serializer's <code>Meta.opt_in_fields</code> controls which fields are influenced by <code>include</code>.</p>
12366
+
12367
+
12368
+
12369
+
12370
+
12183
12371
 
12184
12372
 
12185
12373
 
@@ -12208,8 +12396,12 @@ which fields should be displayed.</p>
12208
12396
 
12209
12397
  <div class="doc doc-contents ">
12210
12398
 
12211
- <p>Removes all serializer fields specified in a serializers <code>opt_in_fields</code> list that aren't specified in the
12212
- <code>include</code> query parameter.</p>
12399
+ <p>Dynamically adjust the dictionary of fields attributed to this serializer instance.</p>
12400
+ <ul>
12401
+ <li>Removes all serializer fields specified in <code>Meta.opt_in_fields</code> list that aren't specified in the
12402
+ <code>include</code> query parameter. (applies to GET requests only)</li>
12403
+ <li>If the <code>exclude_m2m</code> query parameter is truthy, remove all many-to-many serializer fields for performance.</li>
12404
+ </ul>
12213
12405
  <p>As an example, if the serializer specifies that <code>opt_in_fields = ["computed_fields"]</code>
12214
12406
  but <code>computed_fields</code> is not specified in the <code>?include</code> query parameter, <code>computed_fields</code> will be popped
12215
12407
  from the list of fields.</p>
@@ -12240,7 +12432,12 @@ from the list of fields.</p>
12240
12432
 
12241
12433
  <div class="doc doc-contents ">
12242
12434
  <p class="doc doc-class-bases">
12243
- Bases: <code><autoref identifier="rest_framework.routers.DefaultRouter" optional hover>DefaultRouter</autoref></code></p>
12435
+ Bases: <code><span title="rest_framework.routers.DefaultRouter">DefaultRouter</span></code></p>
12436
+
12437
+
12438
+
12439
+
12440
+
12244
12441
 
12245
12442
 
12246
12443
 
@@ -12267,7 +12464,7 @@ from the list of fields.</p>
12267
12464
 
12268
12465
  <div class="doc doc-contents ">
12269
12466
 
12270
- <p>Wrap DRF's DefaultRouter to return an alphabetized list of endpoints.</p>
12467
+ <p>Wrap DRF's DefaultRouter to return an alphabetized list of endpoints.</p>
12271
12468
 
12272
12469
  </div>
12273
12470
 
@@ -12284,7 +12481,7 @@ from the list of fields.</p>
12284
12481
 
12285
12482
  <div class="doc doc-contents ">
12286
12483
 
12287
- <p>Override DRF's BaseRouter.register() to bypass an unnecessary restriction added in version 3.15.0.</p>
12484
+ <p>Override DRF's BaseRouter.register() to bypass an unnecessary restriction added in version 3.15.0.</p>
12288
12485
  <p>(Reference: https://github.com/encode/django-rest-framework/pull/8438)</p>
12289
12486
 
12290
12487
  </div>
@@ -12312,10 +12509,15 @@ from the list of fields.</p>
12312
12509
 
12313
12510
  <div class="doc doc-contents ">
12314
12511
  <p class="doc doc-class-bases">
12315
- Bases: <code><autoref identifier="nautobot.core.api.views.NautobotAPIVersionMixin" optional hover>NautobotAPIVersionMixin</autoref></code>, <code><autoref identifier="nautobot.core.api.views.ModelViewSetMixin" optional hover>ModelViewSetMixin</autoref></code>, <code><autoref identifier="rest_framework.viewsets.ReadOnlyModelViewSet" optional hover>ReadOnlyModelViewSet</autoref></code></p>
12512
+ Bases: <code><span title="nautobot.core.api.views.NautobotAPIVersionMixin">NautobotAPIVersionMixin</span></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.api.views.ModelViewSetMixin" href="#nautobot.apps.api.ModelViewSetMixin">ModelViewSetMixin</a></code>, <code><span title="rest_framework.viewsets.ReadOnlyModelViewSet">ReadOnlyModelViewSet</span></code></p>
12513
+
12514
+
12515
+ <p>Extend DRF's ReadOnlyModelViewSet to support queryset restriction.</p>
12516
+
12517
+
12518
+
12316
12519
 
12317
12520
 
12318
- <p>Extend DRF's ReadOnlyModelViewSet to support queryset restriction.</p>
12319
12521
 
12320
12522
 
12321
12523
 
@@ -12351,10 +12553,15 @@ from the list of fields.</p>
12351
12553
 
12352
12554
  <div class="doc doc-contents ">
12353
12555
  <p class="doc doc-class-bases">
12354
- Bases: <code><autoref identifier="nautobot.core.api.serializers.ValidatedModelSerializer" optional hover>ValidatedModelSerializer</autoref></code></p>
12556
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.api.serializers.ValidatedModelSerializer" href="#nautobot.apps.api.ValidatedModelSerializer">ValidatedModelSerializer</a></code></p>
12557
+
12558
+
12559
+ <p>Extend ValidatedModelSerializer with a <code>relationships</code> field.</p>
12560
+
12561
+
12562
+
12355
12563
 
12356
12564
 
12357
- <p>Extend ValidatedModelSerializer with a <code>relationships</code> field.</p>
12358
12565
 
12359
12566
 
12360
12567
 
@@ -12380,7 +12587,7 @@ from the list of fields.</p>
12380
12587
 
12381
12588
  <div class="doc doc-contents ">
12382
12589
 
12383
- <p>Ensure that "relationships" is included as an opt-in field on root serializers.</p>
12590
+ <p>Ensure that "relationships" is included as an opt-in field on root serializers.</p>
12384
12591
 
12385
12592
  </div>
12386
12593
 
@@ -12407,15 +12614,20 @@ from the list of fields.</p>
12407
12614
 
12408
12615
  <div class="doc doc-contents ">
12409
12616
  <p class="doc doc-class-bases">
12410
- Bases: <code><autoref identifier="rest_framework.relations.PrimaryKeyRelatedField" optional hover>PrimaryKeyRelatedField</autoref></code></p>
12617
+ Bases: <code><span title="rest_framework.relations.PrimaryKeyRelatedField">PrimaryKeyRelatedField</span></code></p>
12411
12618
 
12412
12619
 
12413
- <p>Extends PrimaryKeyRelatedField to return a serialized object on read. This is useful for representing related
12620
+ <p>Extends PrimaryKeyRelatedField to return a serialized object on read. This is useful for representing related
12414
12621
  objects in a ManyToManyField while still allowing a set of primary keys to be written.</p>
12415
12622
 
12416
12623
 
12417
12624
 
12418
12625
 
12626
+
12627
+
12628
+
12629
+
12630
+
12419
12631
  <div class="doc doc-children">
12420
12632
 
12421
12633
 
@@ -12447,7 +12659,12 @@ objects in a ManyToManyField while still allowing a set of primary keys to be wr
12447
12659
 
12448
12660
  <div class="doc doc-contents ">
12449
12661
  <p class="doc doc-class-bases">
12450
- Bases: <code><autoref identifier="nautobot.core.api.BaseModelSerializer" optional hover>BaseModelSerializer</autoref></code></p>
12662
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.api.BaseModelSerializer" href="#nautobot.apps.api.BaseModelSerializer">BaseModelSerializer</a></code></p>
12663
+
12664
+
12665
+
12666
+
12667
+
12451
12668
 
12452
12669
 
12453
12670
 
@@ -12474,7 +12691,7 @@ objects in a ManyToManyField while still allowing a set of primary keys to be wr
12474
12691
 
12475
12692
  <div class="doc doc-contents ">
12476
12693
 
12477
- <p>Ensure that 'tags' field is always present except on nested serializers.</p>
12694
+ <p>Ensure that 'tags' field is always present except on nested serializers.</p>
12478
12695
 
12479
12696
  </div>
12480
12697
 
@@ -12501,10 +12718,15 @@ objects in a ManyToManyField while still allowing a set of primary keys to be wr
12501
12718
 
12502
12719
  <div class="doc doc-contents ">
12503
12720
  <p class="doc doc-class-bases">
12504
- Bases: <code><autoref identifier="timezone_field.rest_framework.TimeZoneSerializerField" optional hover>TimeZoneSerializerField</autoref></code></p>
12721
+ Bases: <code><span title="timezone_field.rest_framework.TimeZoneSerializerField">TimeZoneSerializerField</span></code></p>
12722
+
12723
+
12724
+ <p>Represents a time zone as a string.</p>
12725
+
12726
+
12727
+
12505
12728
 
12506
12729
 
12507
- <p>Represents a time zone as a string.</p>
12508
12730
 
12509
12731
 
12510
12732
  </div>
@@ -12524,10 +12746,15 @@ objects in a ManyToManyField while still allowing a set of primary keys to be wr
12524
12746
 
12525
12747
  <div class="doc doc-contents ">
12526
12748
  <p class="doc doc-class-bases">
12527
- Bases: <code><autoref identifier="nautobot.core.api.serializers.BaseModelSerializer" optional hover>BaseModelSerializer</autoref></code></p>
12749
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.api.serializers.BaseModelSerializer" href="#nautobot.apps.api.BaseModelSerializer">BaseModelSerializer</a></code></p>
12750
+
12751
+
12752
+ <p>Add a <code>tree_depth</code> field to non-nested model serializers based on django-tree-queries.</p>
12753
+
12754
+
12755
+
12528
12756
 
12529
12757
 
12530
- <p>Add a <code>tree_depth</code> field to non-nested model serializers based on django-tree-queries.</p>
12531
12758
 
12532
12759
 
12533
12760
 
@@ -12553,7 +12780,7 @@ objects in a ManyToManyField while still allowing a set of primary keys to be wr
12553
12780
 
12554
12781
  <div class="doc doc-contents ">
12555
12782
 
12556
- <p>Ensure that "tree_depth" is included on root serializers only, as nested objects are not annotated.</p>
12783
+ <p>Ensure that "tree_depth" is included on root serializers only, as nested objects are not annotated.</p>
12557
12784
 
12558
12785
  </div>
12559
12786
 
@@ -12570,7 +12797,7 @@ objects in a ManyToManyField while still allowing a set of primary keys to be wr
12570
12797
 
12571
12798
  <div class="doc doc-contents ">
12572
12799
 
12573
- <p>The <code>tree_depth</code> is not a database field, but an annotation automatically added by django-tree-queries.</p>
12800
+ <p>The <code>tree_depth</code> is not a database field, but an annotation automatically added by django-tree-queries.</p>
12574
12801
 
12575
12802
  </div>
12576
12803
 
@@ -12597,15 +12824,20 @@ objects in a ManyToManyField while still allowing a set of primary keys to be wr
12597
12824
 
12598
12825
  <div class="doc doc-contents ">
12599
12826
  <p class="doc doc-class-bases">
12600
- Bases: <code><autoref identifier="nautobot.core.api.serializers.BaseModelSerializer" optional hover>BaseModelSerializer</autoref></code></p>
12827
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.api.serializers.BaseModelSerializer" href="#nautobot.apps.api.BaseModelSerializer">BaseModelSerializer</a></code></p>
12601
12828
 
12602
12829
 
12603
- <p>Extends the built-in ModelSerializer to enforce calling full_clean() on a copy of the associated instance during
12830
+ <p>Extends the built-in ModelSerializer to enforce calling full_clean() on a copy of the associated instance during
12604
12831
  validation. (DRF does not do this by default; see https://github.com/encode/django-rest-framework/issues/3144)</p>
12605
12832
 
12606
12833
 
12607
12834
 
12608
12835
 
12836
+
12837
+
12838
+
12839
+
12840
+
12609
12841
  <div class="doc doc-children">
12610
12842
 
12611
12843
 
@@ -12637,10 +12869,10 @@ validation. (DRF does not do this by default; see https://github.com/encode/djan
12637
12869
 
12638
12870
  <div class="doc doc-contents ">
12639
12871
  <p class="doc doc-class-bases">
12640
- Bases: <code><autoref identifier="nautobot.core.api.serializers.BaseModelSerializer" optional hover>BaseModelSerializer</autoref></code></p>
12872
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.api.serializers.BaseModelSerializer" href="#nautobot.apps.api.BaseModelSerializer">BaseModelSerializer</a></code></p>
12641
12873
 
12642
12874
 
12643
- <p>Returns a nested representation of an object on read, but accepts either the nested representation or the
12875
+ <p>Returns a nested representation of an object on read, but accepts either the nested representation or the
12644
12876
  primary key value on write operations.</p>
12645
12877
  <p>Note that subclasses will always have a read-only <code>object_type</code> field, which represents the content-type of this
12646
12878
  serializer's associated model (e.g. "dcim.device"). This is required as the OpenAPI schema, using the
@@ -12650,6 +12882,11 @@ which of several possible nested serializers are in use for a given attribute.</
12650
12882
 
12651
12883
 
12652
12884
 
12885
+
12886
+
12887
+
12888
+
12889
+
12653
12890
  <div class="doc doc-children">
12654
12891
 
12655
12892
 
@@ -12682,7 +12919,7 @@ which of several possible nested serializers are in use for a given attribute.</
12682
12919
  <div class="doc doc-contents ">
12683
12920
 
12684
12921
 
12685
- <p>WritableSerializerMixin provides the to_internal_value() function.
12922
+ <p>WritableSerializerMixin provides the to_internal_value() function.
12686
12923
  The function provides the ability to write API requests that identify unique objects based on
12687
12924
  combinations of fields other than the primary key.
12688
12925
  e.g:
@@ -12693,6 +12930,11 @@ vs
12693
12930
 
12694
12931
 
12695
12932
 
12933
+
12934
+
12935
+
12936
+
12937
+
12696
12938
  <div class="doc doc-children">
12697
12939
 
12698
12940
 
@@ -12714,7 +12956,7 @@ vs
12714
12956
 
12715
12957
  <div class="doc doc-contents ">
12716
12958
 
12717
- <p>Retrieve an unique object based on a dictionary of data attributes and raise errors accordingly if the object is not found.</p>
12959
+ <p>Retrieve an unique object based on a dictionary of data attributes and raise errors accordingly if the object is not found.</p>
12718
12960
 
12719
12961
  </div>
12720
12962
 
@@ -12731,7 +12973,7 @@ vs
12731
12973
 
12732
12974
  <div class="doc doc-contents ">
12733
12975
 
12734
- <p>Data could be a dictionary and an int (for the User model) or a str that represents the primary key.
12976
+ <p>Data could be a dictionary and an int (for the User model) or a str that represents the primary key.
12735
12977
  If it is a dictionary, we return it after remove non-filter fields.
12736
12978
  If it is a primary key, we return a dictionary object formatted like this {"pk": pk}</p>
12737
12979
 
@@ -12750,7 +12992,7 @@ If it is a primary key, we return a dictionary object formatted like this {"pk":
12750
12992
 
12751
12993
  <div class="doc doc-contents ">
12752
12994
 
12753
- <p>Make output from a WritableSerializer "round-trip" capable by automatically stripping from the
12995
+ <p>Make output from a WritableSerializer "round-trip" capable by automatically stripping from the
12754
12996
  data any serializer fields that do not correspond to a specific model field</p>
12755
12997
 
12756
12998
  </div>
@@ -12768,7 +13010,7 @@ data any serializer fields that do not correspond to a specific model field</p>
12768
13010
 
12769
13011
  <div class="doc doc-contents ">
12770
13012
 
12771
- <p>Return an object or a list of objects based on a dictionary of data attributes or an UUID.</p>
13013
+ <p>Return an object or a list of objects based on a dictionary of data attributes or an UUID.</p>
12772
13014
 
12773
13015
  </div>
12774
13016
 
@@ -12794,7 +13036,7 @@ data any serializer fields that do not correspond to a specific model field</p>
12794
13036
 
12795
13037
  <div class="doc doc-contents ">
12796
13038
 
12797
- <p>Translate a dictionary of attributes to a nested set of parameters suitable for QuerySet filtering. For example:</p>
13039
+ <p>Translate a dictionary of attributes to a nested set of parameters suitable for QuerySet filtering. For example:</p>
12798
13040
  <div class="highlight"><pre><span></span><code>{
12799
13041
  &quot;name&quot;: &quot;Foo&quot;,
12800
13042
  &quot;rack&quot;: {
@@ -12827,7 +13069,7 @@ data any serializer fields that do not correspond to a specific model field</p>
12827
13069
 
12828
13070
  <div class="doc doc-contents ">
12829
13071
 
12830
- <p>Dynamically import a class from an absolute path string</p>
13072
+ <p>Dynamically import a class from an absolute path string</p>
12831
13073
 
12832
13074
  </div>
12833
13075
 
@@ -12844,7 +13086,7 @@ data any serializer fields that do not correspond to a specific model field</p>
12844
13086
 
12845
13087
  <div class="doc doc-contents ">
12846
13088
 
12847
- <p>Returns the serializer of an api_version</p>
13089
+ <p>Returns the serializer of an api_version</p>
12848
13090
 
12849
13091
 
12850
13092
  <p><span class="doc-section-title">Parameters:</span></p>
@@ -12859,9 +13101,11 @@ data any serializer fields that do not correspond to a specific model field</p>
12859
13101
  </thead>
12860
13102
  <tbody>
12861
13103
  <tr class="doc-section-item">
12862
- <td><code>serializer_choices</code></td>
12863
13104
  <td>
12864
- <code><autoref identifier="tuple" optional>tuple</autoref></code>
13105
+ <code>serializer_choices</code>
13106
+ </td>
13107
+ <td>
13108
+ <code>tuple</code>
12865
13109
  </td>
12866
13110
  <td>
12867
13111
  <div class="doc-md-description">
@@ -12873,9 +13117,11 @@ data any serializer fields that do not correspond to a specific model field</p>
12873
13117
  </td>
12874
13118
  </tr>
12875
13119
  <tr class="doc-section-item">
12876
- <td><code>api_version</code></td>
12877
13120
  <td>
12878
- <code><autoref identifier="str" optional>str</autoref></code>
13121
+ <code>api_version</code>
13122
+ </td>
13123
+ <td>
13124
+ <code>str</code>
12879
13125
  </td>
12880
13126
  <td>
12881
13127
  <div class="doc-md-description">
@@ -12901,7 +13147,7 @@ data any serializer fields that do not correspond to a specific model field</p>
12901
13147
  <tbody>
12902
13148
  <tr class="doc-section-item">
12903
13149
  <td>
12904
- <code><autoref identifier="Serializer" optional>Serializer</autoref></code>
13150
+ <code>Serializer</code>
12905
13151
  </td>
12906
13152
  <td>
12907
13153
  <div class="doc-md-description">
@@ -12927,7 +13173,7 @@ data any serializer fields that do not correspond to a specific model field</p>
12927
13173
 
12928
13174
  <div class="doc doc-contents ">
12929
13175
 
12930
- <p>Dynamically resolve and return the appropriate serializer for a model.</p>
13176
+ <p>Dynamically resolve and return the appropriate serializer for a model.</p>
12931
13177
 
12932
13178
 
12933
13179
  <p><span class="doc-section-title">Raises:</span></p>
@@ -12941,7 +13187,7 @@ data any serializer fields that do not correspond to a specific model field</p>
12941
13187
  <tbody>
12942
13188
  <tr class="doc-section-item">
12943
13189
  <td>
12944
- <code><autoref identifier="SerializerNotFound" optional>SerializerNotFound</autoref></code>
13190
+ <code>SerializerNotFound</code>
12945
13191
  </td>
12946
13192
  <td>
12947
13193
  <div class="doc-md-description">
@@ -12967,7 +13213,7 @@ data any serializer fields that do not correspond to a specific model field</p>
12967
13213
 
12968
13214
  <div class="doc doc-contents ">
12969
13215
 
12970
- <p>Derive the view name from its associated model, if it has one. Fall back to DRF's built-in <code>get_view_name</code>.</p>
13216
+ <p>Derive the view name from its associated model, if it has one. Fall back to DRF's built-in <code>get_view_name</code>.</p>
12971
13217
 
12972
13218
  </div>
12973
13219
 
@@ -12984,7 +13230,7 @@ data any serializer fields that do not correspond to a specific model field</p>
12984
13230
 
12985
13231
  <div class="doc doc-contents ">
12986
13232
 
12987
- <p>Return True of the request is being made via the REST API.</p>
13233
+ <p>Return True of the request is being made via the REST API.</p>
12988
13234
 
12989
13235
  </div>
12990
13236
 
@@ -13001,7 +13247,7 @@ data any serializer fields that do not correspond to a specific model field</p>
13001
13247
 
13002
13248
  <div class="doc doc-contents ">
13003
13249
 
13004
- <p>Handle exceptions and return a useful error message for REST API requests.</p>
13250
+ <p>Handle exceptions and return a useful error message for REST API requests.</p>
13005
13251
 
13006
13252
  </div>
13007
13253
 
@@ -13018,7 +13264,7 @@ data any serializer fields that do not correspond to a specific model field</p>
13018
13264
 
13019
13265
  <div class="doc doc-contents ">
13020
13266
 
13021
- <p>Returns appropriate serializer class depending on request api_version, and swagger_fake_view</p>
13267
+ <p>Returns appropriate serializer class depending on request api_version, and swagger_fake_view</p>
13022
13268
 
13023
13269
 
13024
13270
  <p><span class="doc-section-title">Parameters:</span></p>
@@ -13033,7 +13279,9 @@ data any serializer fields that do not correspond to a specific model field</p>
13033
13279
  </thead>
13034
13280
  <tbody>
13035
13281
  <tr class="doc-section-item">
13036
- <td><code>obj</code></td>
13282
+ <td>
13283
+ <code>obj</code>
13284
+ </td>
13037
13285
  <td>
13038
13286
  <code>ViewSet instance</code>
13039
13287
  </td>
@@ -13047,9 +13295,11 @@ data any serializer fields that do not correspond to a specific model field</p>
13047
13295
  </td>
13048
13296
  </tr>
13049
13297
  <tr class="doc-section-item">
13050
- <td><code>serializer_choices</code></td>
13051
13298
  <td>
13052
- <code><autoref identifier="tuple" optional>tuple</autoref></code>
13299
+ <code>serializer_choices</code>
13300
+ </td>
13301
+ <td>
13302
+ <code>tuple</code>
13053
13303
  </td>
13054
13304
  <td>
13055
13305
  <div class="doc-md-description">
@@ -13061,9 +13311,11 @@ data any serializer fields that do not correspond to a specific model field</p>
13061
13311
  </td>
13062
13312
  </tr>
13063
13313
  <tr class="doc-section-item">
13064
- <td><code>default_serializer</code></td>
13065
13314
  <td>
13066
- <code><autoref identifier="Serializer" optional>Serializer</autoref></code>
13315
+ <code>default_serializer</code>
13316
+ </td>
13317
+ <td>
13318
+ <code>Serializer</code>
13067
13319
  </td>
13068
13320
  <td>
13069
13321
  <div class="doc-md-description">
@@ -13234,7 +13486,7 @@ data any serializer fields that do not correspond to a specific model field</p>
13234
13486
  <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>
13235
13487
 
13236
13488
 
13237
- <script src="../../../assets/javascripts/bundle.83f73b43.min.js"></script>
13489
+ <script src="../../../assets/javascripts/bundle.88dd0f4e.min.js"></script>
13238
13490
 
13239
13491
  <script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
13240
13492