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
 
@@ -9382,11 +9424,11 @@
9382
9424
 
9383
9425
 
9384
9426
  <li class="md-nav__item">
9385
- <a href="../../../development/core/local-k8s.html" class="md-nav__link">
9427
+ <a href="../../../development/core/minikube-dev-environment-for-k8s-jobs.html" class="md-nav__link">
9386
9428
 
9387
9429
 
9388
9430
  <span class="md-ellipsis">
9389
- Local Kubernetes Cluster
9431
+ Minikube Dev Environment for K8s Jobs
9390
9432
  </span>
9391
9433
 
9392
9434
 
@@ -11610,7 +11652,12 @@
11610
11652
 
11611
11653
  <div class="doc doc-contents first">
11612
11654
 
11613
- <p>Data model classes and utilities for app implementation.</p>
11655
+ <p>Data model classes and utilities for app implementation.</p>
11656
+
11657
+
11658
+
11659
+
11660
+
11614
11661
 
11615
11662
 
11616
11663
 
@@ -11636,10 +11683,10 @@
11636
11683
 
11637
11684
  <div class="doc doc-contents ">
11638
11685
  <p class="doc doc-class-bases">
11639
- Bases: <code><autoref identifier="django_extensions.db.fields.AutoSlugField" optional hover>AutoSlugField</autoref></code></p>
11686
+ Bases: <code><span title="django_extensions.db.fields.AutoSlugField">AutoSlugField</span></code></p>
11640
11687
 
11641
11688
 
11642
- <p>AutoSlugField</p>
11689
+ <p>AutoSlugField</p>
11643
11690
  <p>By default, sets editable=True, blank=True, max_length=100, overwrite_on_add=False, unique=True
11644
11691
  Required arguments:
11645
11692
  populate_from
@@ -11681,6 +11728,11 @@ class MyModel(models.Model):
11681
11728
 
11682
11729
 
11683
11730
 
11731
+
11732
+
11733
+
11734
+
11735
+
11684
11736
  <div class="doc doc-children">
11685
11737
 
11686
11738
 
@@ -11702,7 +11754,7 @@ class MyModel(models.Model):
11702
11754
 
11703
11755
  <div class="doc doc-contents ">
11704
11756
 
11705
- <p>Workaround for https://github.com/django-extensions/django-extensions/issues/1713.</p>
11757
+ <p>Workaround for https://github.com/django-extensions/django-extensions/issues/1713.</p>
11706
11758
 
11707
11759
  </div>
11708
11760
 
@@ -11729,15 +11781,20 @@ class MyModel(models.Model):
11729
11781
 
11730
11782
  <div class="doc doc-contents ">
11731
11783
  <p class="doc doc-class-bases">
11732
- Bases: <code><autoref identifier="django.db.models.Manager" optional hover>Manager</autoref></code></p>
11784
+ Bases: <code><span title="django.db.models.Manager">Manager</span></code></p>
11733
11785
 
11734
11786
 
11735
- <p>Base manager class corresponding to BaseModel and RestrictedQuerySet.</p>
11787
+ <p>Base manager class corresponding to BaseModel and RestrictedQuerySet.</p>
11736
11788
  <p>Adds built-in natural key support, loosely based on <code>django-natural-keys</code>.</p>
11737
11789
 
11738
11790
 
11739
11791
 
11740
11792
 
11793
+
11794
+
11795
+
11796
+
11797
+
11741
11798
  <div class="doc doc-children">
11742
11799
 
11743
11800
 
@@ -11759,7 +11816,7 @@ class MyModel(models.Model):
11759
11816
 
11760
11817
  <div class="doc doc-contents ">
11761
11818
 
11762
- <p>Return the object corresponding to the provided natural key.</p>
11819
+ <p>Return the object corresponding to the provided natural key.</p>
11763
11820
  <p>Generic implementation that depends on the model being a BaseModel subclass or otherwise implementing our
11764
11821
  <code>natural_key_field_lookups</code> property API. Loosely based on implementation from <code>django-natural-keys</code>.</p>
11765
11822
 
@@ -11788,10 +11845,10 @@ class MyModel(models.Model):
11788
11845
 
11789
11846
  <div class="doc doc-contents ">
11790
11847
  <p class="doc doc-class-bases">
11791
- Bases: <code><autoref identifier="django.db.models.Model" optional hover>Model</autoref></code></p>
11848
+ Bases: <code><span title="django.db.models.Model">Model</span></code></p>
11792
11849
 
11793
11850
 
11794
- <p>Base model class that all models should inherit from.</p>
11851
+ <p>Base model class that all models should inherit from.</p>
11795
11852
  <p>This abstract base provides globally common fields and functionality.</p>
11796
11853
  <p>Here we define the primary key to be a UUID field and set its default to
11797
11854
  automatically generate a random UUID value. Note however, this does not
@@ -11807,6 +11864,11 @@ can be used for the same purpose in most cases.</p>
11807
11864
 
11808
11865
 
11809
11866
 
11867
+
11868
+
11869
+
11870
+
11871
+
11810
11872
  <div class="doc doc-children">
11811
11873
 
11812
11874
 
@@ -11820,7 +11882,7 @@ can be used for the same purpose in most cases.</p>
11820
11882
 
11821
11883
 
11822
11884
  <h3 id="nautobot.apps.models.BaseModel.composite_key" class="doc doc-heading">
11823
- <code class="highlight language-python"><span class="n">composite_key</span><span class="p">:</span> <span class="nb">str</span></code>
11885
+ <code class="highlight language-python"><span class="n">composite_key</span></code>
11824
11886
 
11825
11887
  <span class="doc doc-labels">
11826
11888
  <small class="doc doc-label doc-label-property"><code>property</code></small>
@@ -11831,7 +11893,7 @@ can be used for the same purpose in most cases.</p>
11831
11893
 
11832
11894
  <div class="doc doc-contents ">
11833
11895
 
11834
- <p>Automatic "slug" string derived from this model's natural key, suitable for use in URLs etc.</p>
11896
+ <p>Automatic "slug" string derived from this model's natural key, suitable for use in URLs etc.</p>
11835
11897
  <p>A less naïve implementation than django-natural-keys provides by default, based around URL percent-encoding.</p>
11836
11898
  </div>
11837
11899
 
@@ -11842,7 +11904,7 @@ can be used for the same purpose in most cases.</p>
11842
11904
 
11843
11905
 
11844
11906
  <h3 id="nautobot.apps.models.BaseModel.natural_slug" class="doc doc-heading">
11845
- <code class="highlight language-python"><span class="n">natural_slug</span><span class="p">:</span> <span class="nb">str</span></code>
11907
+ <code class="highlight language-python"><span class="n">natural_slug</span></code>
11846
11908
 
11847
11909
  <span class="doc doc-labels">
11848
11910
  <small class="doc doc-label doc-label-property"><code>property</code></small>
@@ -11853,7 +11915,7 @@ can be used for the same purpose in most cases.</p>
11853
11915
 
11854
11916
  <div class="doc doc-contents ">
11855
11917
 
11856
- <p>Automatic "slug" string derived from this model's natural key. This differs from composite
11918
+ <p>Automatic "slug" string derived from this model's natural key. This differs from composite
11857
11919
  key in that it must be human-readable and comply with a very limited character set, and is therefore lossy.
11858
11920
  This value is not guaranteed to be
11859
11921
  unique although a best effort is made by appending a fragment of the primary key to the
@@ -11878,7 +11940,7 @@ natural slug value.</p>
11878
11940
 
11879
11941
  <div class="doc doc-contents ">
11880
11942
 
11881
- <p>True if the record exists in the database, False if it does not.</p>
11943
+ <p>True if the record exists in the database, False if it does not.</p>
11882
11944
  </div>
11883
11945
 
11884
11946
  </div>
@@ -11900,7 +11962,7 @@ natural slug value.</p>
11900
11962
 
11901
11963
  <div class="doc doc-contents ">
11902
11964
 
11903
- <p>Override this method for models with Python <code>@property</code> as part of their <code>natural_key_field_names</code>.</p>
11965
+ <p>Override this method for models with Python <code>@property</code> as part of their <code>natural_key_field_names</code>.</p>
11904
11966
  <p>Since CSV export for <code>natural_key_field_names</code> relies on database fields, you can override this method
11905
11967
  to provide custom handling for models with property-based natural keys.</p>
11906
11968
 
@@ -11919,7 +11981,7 @@ to provide custom handling for models with property-based natural keys.</p>
11919
11981
 
11920
11982
  <div class="doc doc-contents ">
11921
11983
 
11922
- <p>Return the canonical URL for this object in either the UI or the REST API.</p>
11984
+ <p>Return the canonical URL for this object in either the UI or the REST API.</p>
11923
11985
 
11924
11986
  </div>
11925
11987
 
@@ -11936,7 +11998,7 @@ to provide custom handling for models with property-based natural keys.</p>
11936
11998
 
11937
11999
  <div class="doc doc-contents ">
11938
12000
 
11939
- <p>Smarter default implementation of natural key construction.</p>
12001
+ <p>Smarter default implementation of natural key construction.</p>
11940
12002
  <ol>
11941
12003
  <li>Handles nullable foreign keys (https://github.com/wq/django-natural-keys/issues/18)</li>
11942
12004
  <li>Handles variadic natural-keys (e.g. Location model - [name, parent__name, parent__parent__name, ...].)</li>
@@ -11961,7 +12023,7 @@ to provide custom handling for models with property-based natural keys.</p>
11961
12023
 
11962
12024
  <div class="doc doc-contents ">
11963
12025
 
11964
- <p>Helper function to map a list of natural key field values to actual kwargs suitable for lookup and filtering.</p>
12026
+ <p>Helper function to map a list of natural key field values to actual kwargs suitable for lookup and filtering.</p>
11965
12027
  <p>Based on <code>django-natural-keys</code> <code>NaturalKeyQuerySet.natural_key_kwargs()</code> method.</p>
11966
12028
 
11967
12029
  </div>
@@ -11979,7 +12041,7 @@ to provide custom handling for models with property-based natural keys.</p>
11979
12041
 
11980
12042
  <div class="doc doc-contents ">
11981
12043
 
11982
- <p>List of lookups (possibly including nested lookups for related models) that make up this model's natural key.</p>
12044
+ <p>List of lookups (possibly including nested lookups for related models) that make up this model's natural key.</p>
11983
12045
  <p>BaseModel provides a "smart" implementation that tries to determine this automatically,
11984
12046
  but you can also explicitly set <code>natural_key_field_names</code> on a given model subclass if desired.</p>
11985
12047
  <p>This property is based on a consolidation of <code>django-natural-keys</code> <code>ForeignKeyModel.get_natural_key_info()</code>,
@@ -12002,7 +12064,7 @@ but instead explicitly discounts the <code>id</code> field (only) as a candidate
12002
12064
 
12003
12065
  <div class="doc doc-contents ">
12004
12066
 
12005
- <p>Perform model validation during instance save.</p>
12067
+ <p>Perform model validation during instance save.</p>
12006
12068
  <p>This is a convenience method that first calls <code>self.full_clean()</code> and then <code>self.save()</code>
12007
12069
  which in effect enforces model validation prior to saving the instance, without having
12008
12070
  to manually make these calls seperately. This is a slight departure from Django norms,
@@ -12035,15 +12097,20 @@ command.</p>
12035
12097
 
12036
12098
  <div class="doc doc-contents ">
12037
12099
  <p class="doc doc-class-bases">
12038
- Bases: <code><autoref identifier="django.db.models.Model" optional hover>Model</autoref></code></p>
12100
+ Bases: <code><span title="django.db.models.Model">Model</span></code></p>
12039
12101
 
12040
12102
 
12041
- <p>An abstract model which adds fields to store the creation and last-updated times for an object. Both fields can be
12103
+ <p>An abstract model which adds fields to store the creation and last-updated times for an object. Both fields can be
12042
12104
  null to facilitate adding these fields to existing instances via a database migration.</p>
12043
12105
 
12044
12106
 
12045
12107
 
12046
12108
 
12109
+
12110
+
12111
+
12112
+
12113
+
12047
12114
  <div class="doc doc-children">
12048
12115
 
12049
12116
 
@@ -12065,7 +12132,7 @@ null to facilitate adding these fields to existing instances via a database migr
12065
12132
 
12066
12133
  <div class="doc doc-contents ">
12067
12134
 
12068
- <p>Return the changelog URL for this object.</p>
12135
+ <p>Return the changelog URL for this object.</p>
12069
12136
 
12070
12137
  </div>
12071
12138
 
@@ -12082,7 +12149,7 @@ null to facilitate adding these fields to existing instances via a database migr
12082
12149
 
12083
12150
  <div class="doc doc-contents ">
12084
12151
 
12085
- <p>Return a new ObjectChange representing a change made to this object, or None if the object shouldn't be logged.</p>
12152
+ <p>Return a new ObjectChange representing a change made to this object, or None if the object shouldn't be logged.</p>
12086
12153
  <p>This will typically be called automatically by ChangeLoggingMiddleware.</p>
12087
12154
 
12088
12155
  </div>
@@ -12110,10 +12177,15 @@ null to facilitate adding these fields to existing instances via a database migr
12110
12177
 
12111
12178
  <div class="doc doc-contents ">
12112
12179
  <p class="doc doc-class-bases">
12113
- Bases: <code><autoref identifier="django.db.models.Func" optional hover>Func</autoref></code></p>
12180
+ Bases: <code><span title="django.db.models.Func">Func</span></code></p>
12181
+
12182
+
12183
+ <p>Disregard localization by collating a field as a plain character string. Helpful for ensuring predictable ordering.</p>
12184
+
12185
+
12186
+
12114
12187
 
12115
12188
 
12116
- <p>Disregard localization by collating a field as a plain character string. Helpful for ensuring predictable ordering.</p>
12117
12189
 
12118
12190
 
12119
12191
 
@@ -12150,7 +12222,7 @@ null to facilitate adding these fields to existing instances via a database migr
12150
12222
  <div class="doc doc-contents ">
12151
12223
 
12152
12224
 
12153
- <p>Mixin to extend a base queryset class with support for filtering by <code>composite_key=...</code> as a virtual parameter.</p>
12225
+ <p>Mixin to extend a base queryset class with support for filtering by <code>composite_key=...</code> as a virtual parameter.</p>
12154
12226
  <p>Example:</p>
12155
12227
  <div class="highlight"><pre><span></span><code>&gt;&gt;&gt; Location.objects.last().composite_key
12156
12228
  &#39;Durham;AMER&#39;
@@ -12188,6 +12260,11 @@ ValueError: Conflicting values for key &quot;name&quot;: (&#39;Durham&#39;, &#39
12188
12260
 
12189
12261
 
12190
12262
 
12263
+
12264
+
12265
+
12266
+
12267
+
12191
12268
  <div class="doc doc-children">
12192
12269
 
12193
12270
 
@@ -12209,7 +12286,7 @@ ValueError: Conflicting values for key &quot;name&quot;: (&#39;Durham&#39;, &#39
12209
12286
 
12210
12287
  <div class="doc doc-contents ">
12211
12288
 
12212
- <p>Explicitly handle <code>exclude(composite_key="...")</code> by decomposing the composite-key into natural key parameters.</p>
12289
+ <p>Explicitly handle <code>exclude(composite_key="...")</code> by decomposing the composite-key into natural key parameters.</p>
12213
12290
  <p>Counterpart to BaseModel.composite_key property.</p>
12214
12291
 
12215
12292
  </div>
@@ -12227,7 +12304,7 @@ ValueError: Conflicting values for key &quot;name&quot;: (&#39;Durham&#39;, &#39
12227
12304
 
12228
12305
  <div class="doc doc-contents ">
12229
12306
 
12230
- <p>Explicitly handle <code>filter(composite_key="...")</code> by decomposing the composite-key into natural key parameters.</p>
12307
+ <p>Explicitly handle <code>filter(composite_key="...")</code> by decomposing the composite-key into natural key parameters.</p>
12231
12308
  <p>Counterpart to BaseModel.composite_key property.</p>
12232
12309
 
12233
12310
  </div>
@@ -12245,7 +12322,7 @@ ValueError: Conflicting values for key &quot;name&quot;: (&#39;Durham&#39;, &#39
12245
12322
 
12246
12323
  <div class="doc doc-contents ">
12247
12324
 
12248
- <p>Helper method abstracting a common need from filter() and exclude().</p>
12325
+ <p>Helper method abstracting a common need from filter() and exclude().</p>
12249
12326
  <p>Subclasses may need to call this directly if they also have special processing of other filter/exclude params.</p>
12250
12327
 
12251
12328
  </div>
@@ -12273,15 +12350,20 @@ ValueError: Conflicting values for key &quot;name&quot;: (&#39;Durham&#39;, &#39
12273
12350
 
12274
12351
  <div class="doc doc-contents ">
12275
12352
  <p class="doc doc-class-bases">
12276
- Bases: <code><autoref identifier="django.db.models.Model" optional hover>Model</autoref></code>, <code><autoref identifier="nautobot.extras.models.models.ConfigContextSchemaValidationMixin" optional hover>ConfigContextSchemaValidationMixin</autoref></code></p>
12353
+ Bases: <code><span title="django.db.models.Model">Model</span></code>, <code><a class="autorefs autorefs-internal" title="nautobot.extras.models.models.ConfigContextSchemaValidationMixin" href="#nautobot.apps.models.ConfigContextSchemaValidationMixin">ConfigContextSchemaValidationMixin</a></code></p>
12277
12354
 
12278
12355
 
12279
- <p>A model which includes local configuration context data. This local data will override any inherited data from
12356
+ <p>A model which includes local configuration context data. This local data will override any inherited data from
12280
12357
  ConfigContexts.</p>
12281
12358
 
12282
12359
 
12283
12360
 
12284
12361
 
12362
+
12363
+
12364
+
12365
+
12366
+
12285
12367
  <div class="doc doc-children">
12286
12368
 
12287
12369
 
@@ -12303,7 +12385,7 @@ ConfigContexts.</p>
12303
12385
 
12304
12386
  <div class="doc doc-contents ">
12305
12387
 
12306
- <p>Return the rendered configuration context for a device or VM.</p>
12388
+ <p>Return the rendered configuration context for a device or VM.</p>
12307
12389
 
12308
12390
  </div>
12309
12391
 
@@ -12331,7 +12413,12 @@ ConfigContexts.</p>
12331
12413
  <div class="doc doc-contents ">
12332
12414
 
12333
12415
 
12334
- <p>Mixin that provides validation of config context data against a json schema.</p>
12416
+ <p>Mixin that provides validation of config context data against a json schema.</p>
12417
+
12418
+
12419
+
12420
+
12421
+
12335
12422
 
12336
12423
 
12337
12424
 
@@ -12367,10 +12454,15 @@ ConfigContexts.</p>
12367
12454
 
12368
12455
  <div class="doc doc-contents ">
12369
12456
  <p class="doc doc-class-bases">
12370
- Bases: <code><autoref identifier="django.db.models.Model" optional hover>Model</autoref></code></p>
12457
+ Bases: <code><span title="django.db.models.Model">Model</span></code></p>
12458
+
12459
+
12460
+ <p>Abstract mixin for enabling Contact/Team association to a given model class.</p>
12461
+
12462
+
12463
+
12371
12464
 
12372
12465
 
12373
- <p>Abstract mixin for enabling Contact/Team association to a given model class.</p>
12374
12466
 
12375
12467
 
12376
12468
 
@@ -12406,7 +12498,12 @@ ConfigContexts.</p>
12406
12498
 
12407
12499
  <div class="doc doc-contents ">
12408
12500
  <p class="doc doc-class-bases">
12409
- Bases: <code><autoref identifier="nautobot.core.models.querysets.RestrictedQuerySet" optional hover>RestrictedQuerySet</autoref></code></p>
12501
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.models.querysets.RestrictedQuerySet" href="#nautobot.apps.models.RestrictedQuerySet">RestrictedQuerySet</a></code></p>
12502
+
12503
+
12504
+
12505
+
12506
+
12410
12507
 
12411
12508
 
12412
12509
 
@@ -12433,7 +12530,7 @@ ConfigContexts.</p>
12433
12530
 
12434
12531
  <div class="doc doc-contents ">
12435
12532
 
12436
- <p>Return all <code>self.model</code> instances assigned to the given model.</p>
12533
+ <p>Return all <code>self.model</code> instances assigned to the given model.</p>
12437
12534
 
12438
12535
  </div>
12439
12536
 
@@ -12450,7 +12547,7 @@ ConfigContexts.</p>
12450
12547
 
12451
12548
  <div class="doc doc-contents ">
12452
12549
 
12453
- <p>Return all <code>self.model</code> instances assigned to the given <code>_models</code>.</p>
12550
+ <p>Return all <code>self.model</code> instances assigned to the given <code>_models</code>.</p>
12454
12551
 
12455
12552
  </div>
12456
12553
 
@@ -12477,10 +12574,15 @@ ConfigContexts.</p>
12477
12574
 
12478
12575
  <div class="doc doc-contents ">
12479
12576
  <p class="doc doc-class-bases">
12480
- Bases: <code><autoref identifier="django.db.models.Model" optional hover>Model</autoref></code></p>
12577
+ Bases: <code><span title="django.db.models.Model">Model</span></code></p>
12578
+
12579
+
12580
+ <p>Abstract class for any model which may have custom fields associated with it.</p>
12581
+
12582
+
12583
+
12481
12584
 
12482
12585
 
12483
- <p>Abstract class for any model which may have custom fields associated with it.</p>
12484
12586
 
12485
12587
 
12486
12588
 
@@ -12509,7 +12611,7 @@ ConfigContexts.</p>
12509
12611
 
12510
12612
  <div class="doc doc-contents ">
12511
12613
 
12512
- <p>Convenience wrapper for custom field data.</p>
12614
+ <p>Convenience wrapper for custom field data.</p>
12513
12615
  </div>
12514
12616
 
12515
12617
  </div>
@@ -12530,7 +12632,7 @@ ConfigContexts.</p>
12530
12632
 
12531
12633
  <div class="doc doc-contents ">
12532
12634
 
12533
- <p>Legacy interface to raw custom field data</p>
12635
+ <p>Legacy interface to raw custom field data</p>
12534
12636
  <p>TODO(John): remove this entirely when the cf property is enhanced</p>
12535
12637
  </div>
12536
12638
 
@@ -12549,7 +12651,7 @@ ConfigContexts.</p>
12549
12651
 
12550
12652
  <div class="doc doc-contents ">
12551
12653
 
12552
- <p>Get a computed field for this model, lookup via key.
12654
+ <p>Get a computed field for this model, lookup via key.
12553
12655
  Returns the template of this field if render is False, otherwise returns the rendered value.</p>
12554
12656
 
12555
12657
  </div>
@@ -12567,7 +12669,7 @@ Returns the template of this field if render is False, otherwise returns the ren
12567
12669
 
12568
12670
  <div class="doc doc-contents ">
12569
12671
 
12570
- <p>Return a dictionary of all computed fields and their rendered values for this model.
12672
+ <p>Return a dictionary of all computed fields and their rendered values for this model.
12571
12673
  Keys are the <code>key</code> value of each field. If label_as_key is True, <code>label</code> values of each field are used as keys.</p>
12572
12674
 
12573
12675
  </div>
@@ -12585,7 +12687,7 @@ Keys are the <code>key</code> value of each field. If label_as_key is True, <cod
12585
12687
 
12586
12688
  <div class="doc doc-contents ">
12587
12689
 
12588
- <p>Return a dictonary of computed fields grouped by the same grouping in the form
12690
+ <p>Return a dictonary of computed fields grouped by the same grouping in the form
12589
12691
  {
12590
12692
  <grouping_1>: [(cf1, <value for cf1>), (cf2, <value for cf2>), ...],
12591
12693
  ...
@@ -12608,7 +12710,7 @@ Keys are the <code>key</code> value of each field. If label_as_key is True, <cod
12608
12710
 
12609
12711
  <div class="doc doc-contents ">
12610
12712
 
12611
- <p>This method exists to help call get_computed_field_groupings() in templates where a function argument (advanced_ui) cannot be specified.
12713
+ <p>This method exists to help call get_computed_field_groupings() in templates where a function argument (advanced_ui) cannot be specified.
12612
12714
  Return a dictonary of computed fields grouped by the same grouping in the form
12613
12715
  {
12614
12716
  <grouping_1>: [(cf1, <value for cf1>), (cf2, <value for cf2>), ...],
@@ -12633,7 +12735,7 @@ which have advanced_ui set to True</p>
12633
12735
 
12634
12736
  <div class="doc doc-contents ">
12635
12737
 
12636
- <p>This method exists to help call get_computed_field_groupings() in templates where a function argument (advanced_ui) cannot be specified.
12738
+ <p>This method exists to help call get_computed_field_groupings() in templates where a function argument (advanced_ui) cannot be specified.
12637
12739
  Return a dictonary of computed fields grouped by the same grouping in the form
12638
12740
  {
12639
12741
  <grouping_1>: [(cf1, <value for cf1>), (cf2, <value for cf2>), ...],
@@ -12658,7 +12760,7 @@ which have advanced_ui set to False</p>
12658
12760
 
12659
12761
  <div class="doc doc-contents ">
12660
12762
 
12661
- <p>Return a dictonary of custom fields grouped by the same grouping in the form
12763
+ <p>Return a dictonary of custom fields grouped by the same grouping in the form
12662
12764
  {
12663
12765
  <grouping_1>: [(cf1, <value for cf1>), (cf2, <value for cf2>), ...],
12664
12766
  ...
@@ -12681,7 +12783,7 @@ which have advanced_ui set to False</p>
12681
12783
 
12682
12784
  <div class="doc doc-contents ">
12683
12785
 
12684
- <p>This method exists to help call get_custom_field_groupings() in templates where a function argument (advanced_ui) cannot be specified.
12786
+ <p>This method exists to help call get_custom_field_groupings() in templates where a function argument (advanced_ui) cannot be specified.
12685
12787
  Return a dictonary of custom fields grouped by the same grouping in the form
12686
12788
  {
12687
12789
  <grouping_1>: [(cf1, <value for cf1>), (cf2, <value for cf2>), ...],
@@ -12706,7 +12808,7 @@ which have advanced_ui set to True</p>
12706
12808
 
12707
12809
  <div class="doc doc-contents ">
12708
12810
 
12709
- <p>This method exists to help call get_custom_field_groupings() in templates where a function argument (advanced_ui) cannot be specified.
12811
+ <p>This method exists to help call get_custom_field_groupings() in templates where a function argument (advanced_ui) cannot be specified.
12710
12812
  Return a dictonary of custom fields grouped by the same grouping in the form
12711
12813
  {
12712
12814
  <grouping_1>: [(cf1, <value for cf1>), (cf2, <value for cf2>), ...],
@@ -12731,7 +12833,7 @@ which have advanced_ui set to False</p>
12731
12833
 
12732
12834
  <div class="doc doc-contents ">
12733
12835
 
12734
- <p>Return a dictionary of custom fields for a single object in the form {<field>: value}.</p>
12836
+ <p>Return a dictionary of custom fields for a single object in the form {<field>: value}.</p>
12735
12837
 
12736
12838
  </div>
12737
12839
 
@@ -12748,7 +12850,7 @@ which have advanced_ui set to False</p>
12748
12850
 
12749
12851
  <div class="doc doc-contents ">
12750
12852
 
12751
- <p>This method exists to help call get_custom_fields() in templates where a function argument (advanced_ui) cannot be specified.
12853
+ <p>This method exists to help call get_custom_fields() in templates where a function argument (advanced_ui) cannot be specified.
12752
12854
  Return a dictionary of custom fields for a single object in the form {<field>: value}
12753
12855
  which have advanced_ui set to True</p>
12754
12856
 
@@ -12767,7 +12869,7 @@ which have advanced_ui set to True</p>
12767
12869
 
12768
12870
  <div class="doc doc-contents ">
12769
12871
 
12770
- <p>This method exists to help call get_custom_fields() in templates where a function argument (advanced_ui) cannot be specified.
12872
+ <p>This method exists to help call get_custom_fields() in templates where a function argument (advanced_ui) cannot be specified.
12771
12873
  Return a dictionary of custom fields for a single object in the form {<field>: value}
12772
12874
  which have advanced_ui set to False</p>
12773
12875
 
@@ -12786,7 +12888,7 @@ which have advanced_ui set to False</p>
12786
12888
 
12787
12889
  <div class="doc doc-contents ">
12788
12890
 
12789
- <p>Return a boolean indicating whether or not this content type has computed fields associated with it.
12891
+ <p>Return a boolean indicating whether or not this content type has computed fields associated with it.
12790
12892
  This can also check whether the advanced_ui attribute is True or False for UI display purposes.</p>
12791
12893
 
12792
12894
  </div>
@@ -12815,7 +12917,7 @@ This can also check whether the advanced_ui attribute is True or False for UI di
12815
12917
  <div class="doc doc-contents ">
12816
12918
 
12817
12919
 
12818
- <p>This class is used to register plugin custom model validators which act on specified models. It contains the clean
12920
+ <p>This class is used to register plugin custom model validators which act on specified models. It contains the clean
12819
12921
  method which is overridden by plugin authors to execute custom validation logic. Plugin authors must raise
12820
12922
  ValidationError within this method to trigger validation error messages which are propagated to the user.
12821
12923
  A convenience method <code>validation_error(&lt;message&gt;)</code> may be used for this purpose.</p>
@@ -12825,6 +12927,11 @@ should be set as a string in the form <code>&lt;app_label&gt;.&lt;model_name&gt;
12825
12927
 
12826
12928
 
12827
12929
 
12930
+
12931
+
12932
+
12933
+
12934
+
12828
12935
  <div class="doc doc-children">
12829
12936
 
12830
12937
 
@@ -12846,7 +12953,7 @@ should be set as a string in the form <code>&lt;app_label&gt;.&lt;model_name&gt;
12846
12953
 
12847
12954
  <div class="doc doc-contents ">
12848
12955
 
12849
- <p>Implement custom model validation in the standard Django clean method pattern. The model instance is accessed
12956
+ <p>Implement custom model validation in the standard Django clean method pattern. The model instance is accessed
12850
12957
  with the <code>object</code> key within <code>self.context</code>, e.g. <code>self.context['object']</code>. ValidationError must be raised to
12851
12958
  prevent saving model instance changes, and propagate messages to the user. For convenience,
12852
12959
  <code>self.validation_error(&lt;message&gt;)</code> may be called to raise a ValidationError.</p>
@@ -12866,7 +12973,7 @@ prevent saving model instance changes, and propagate messages to the user. For c
12866
12973
 
12867
12974
  <div class="doc doc-contents ">
12868
12975
 
12869
- <p>Convenience method for raising <code>django.core.exceptions.ValidationError</code> which is required in order to
12976
+ <p>Convenience method for raising <code>django.core.exceptions.ValidationError</code> which is required in order to
12870
12977
  trigger validation error messages which are propagated to the user.</p>
12871
12978
 
12872
12979
  </div>
@@ -12895,7 +13002,7 @@ trigger validation error messages which are propagated to the user.</p>
12895
13002
  <div class="doc doc-contents ">
12896
13003
 
12897
13004
 
12898
- <p>DEPRECATED - use DynamicGroupsModelMixin instead if you need to mark a model as supporting Dynamic Groups.</p>
13005
+ <p>DEPRECATED - use DynamicGroupsModelMixin instead if you need to mark a model as supporting Dynamic Groups.</p>
12899
13006
  <p>This is necessary because DynamicGroupMixin was incorrectly not implemented as a subclass of models.Model,
12900
13007
  and so it cannot properly implement Model behaviors like the <code>static_group_association_set</code> ReverseRelation.
12901
13008
  However, adding this inheritance to DynamicGroupMixin itself would negatively impact existing migrations.
@@ -12909,6 +13016,11 @@ to the new DynamicGroupsModelMixin in its place.</p>
12909
13016
 
12910
13017
 
12911
13018
 
13019
+
13020
+
13021
+
13022
+
13023
+
12912
13024
  <div class="doc doc-children">
12913
13025
 
12914
13026
 
@@ -12933,7 +13045,7 @@ to the new DynamicGroupsModelMixin in its place.</p>
12933
13045
 
12934
13046
  <div class="doc doc-contents ">
12935
13047
 
12936
- <p>Return a queryset of (cached) <code>DynamicGroup</code> objects this instance is a member of.</p>
13048
+ <p>Return a queryset of (cached) <code>DynamicGroup</code> objects this instance is a member of.</p>
12937
13049
  </div>
12938
13050
 
12939
13051
  </div>
@@ -12954,7 +13066,7 @@ to the new DynamicGroupsModelMixin in its place.</p>
12954
13066
 
12955
13067
  <div class="doc doc-contents ">
12956
13068
 
12957
- <p>Deprecated - use <code>self.dynamic_groups</code> instead.</p>
13069
+ <p>Deprecated - use <code>self.dynamic_groups</code> instead.</p>
12958
13070
  </div>
12959
13071
 
12960
13072
  </div>
@@ -12975,7 +13087,7 @@ to the new DynamicGroupsModelMixin in its place.</p>
12975
13087
 
12976
13088
  <div class="doc doc-contents ">
12977
13089
 
12978
- <p>Deprecated - use <code>list(self.dynamic_groups)</code> instead.</p>
13090
+ <p>Deprecated - use <code>list(self.dynamic_groups)</code> instead.</p>
12979
13091
  </div>
12980
13092
 
12981
13093
  </div>
@@ -12996,7 +13108,7 @@ to the new DynamicGroupsModelMixin in its place.</p>
12996
13108
 
12997
13109
  <div class="doc doc-contents ">
12998
13110
 
12999
- <p>Deprecated - use <code>list(self.dynamic_groups)</code> instead.</p>
13111
+ <p>Deprecated - use <code>list(self.dynamic_groups)</code> instead.</p>
13000
13112
  </div>
13001
13113
 
13002
13114
  </div>
@@ -13014,7 +13126,7 @@ to the new DynamicGroupsModelMixin in its place.</p>
13014
13126
 
13015
13127
  <div class="doc doc-contents ">
13016
13128
 
13017
- <p>Return the dynamic groups URL for a given instance.</p>
13129
+ <p>Return the dynamic groups URL for a given instance.</p>
13018
13130
 
13019
13131
  </div>
13020
13132
 
@@ -13041,10 +13153,15 @@ to the new DynamicGroupsModelMixin in its place.</p>
13041
13153
 
13042
13154
  <div class="doc doc-contents ">
13043
13155
  <p class="doc doc-class-bases">
13044
- Bases: <code><autoref identifier="nautobot.extras.models.mixins.DynamicGroupMixin" optional hover>DynamicGroupMixin</autoref></code>, <code><autoref identifier="django.db.models.Model" optional hover>Model</autoref></code></p>
13156
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.extras.models.mixins.DynamicGroupMixin" href="#nautobot.apps.models.DynamicGroupMixin">DynamicGroupMixin</a></code>, <code><span title="django.db.models.Model">Model</span></code></p>
13157
+
13158
+
13159
+ <p>Add this to models to make them fully support Dynamic Groups.</p>
13160
+
13161
+
13162
+
13045
13163
 
13046
13164
 
13047
- <p>Add this to models to make them fully support Dynamic Groups.</p>
13048
13165
 
13049
13166
 
13050
13167
 
@@ -13080,16 +13197,21 @@ to the new DynamicGroupsModelMixin in its place.</p>
13080
13197
 
13081
13198
  <div class="doc doc-contents ">
13082
13199
  <p class="doc doc-class-bases">
13083
- Bases: <code><autoref identifier="nautobot.core.models.query_functions.JSONBAgg" optional hover>JSONBAgg</autoref></code></p>
13200
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.models.query_functions.JSONBAgg" href="#nautobot.apps.models.JSONBAgg">JSONBAgg</a></code></p>
13084
13201
 
13085
13202
 
13086
- <p>JSONBAgg is a builtin aggregation function which means it includes the use of a GROUP BY clause.
13203
+ <p>JSONBAgg is a builtin aggregation function which means it includes the use of a GROUP BY clause.
13087
13204
  When used as an annotation for collecting config context data objects, the GROUP BY is
13088
13205
  incorrect. This subclass overrides the Django ORM aggregation control to remove the GROUP BY.</p>
13089
13206
 
13090
13207
 
13091
13208
 
13092
13209
 
13210
+
13211
+
13212
+
13213
+
13214
+
13093
13215
  <div class="doc doc-children">
13094
13216
 
13095
13217
 
@@ -13121,15 +13243,20 @@ incorrect. This subclass overrides the Django ORM aggregation control to remove
13121
13243
 
13122
13244
  <div class="doc doc-contents ">
13123
13245
  <p class="doc doc-class-bases">
13124
- Bases: <code><autoref identifier="django.core.validators.URLValidator" optional hover>URLValidator</autoref></code></p>
13246
+ Bases: <code><span title="django.core.validators.URLValidator">URLValidator</span></code></p>
13125
13247
 
13126
13248
 
13127
- <p>Extends Django's built-in URLValidator to permit the use of hostnames with no domain extension and enforce allowed
13249
+ <p>Extends Django's built-in URLValidator to permit the use of hostnames with no domain extension and enforce allowed
13128
13250
  schemes specified in the configuration.</p>
13129
13251
 
13130
13252
 
13131
13253
 
13132
13254
 
13255
+
13256
+
13257
+
13258
+
13259
+
13133
13260
  <div class="doc doc-children">
13134
13261
 
13135
13262
 
@@ -13161,10 +13288,15 @@ schemes specified in the configuration.</p>
13161
13288
 
13162
13289
  <div class="doc doc-contents ">
13163
13290
  <p class="doc doc-class-bases">
13164
- Bases: <code><autoref identifier="django.core.validators.BaseValidator" optional hover>BaseValidator</autoref></code></p>
13291
+ Bases: <code><span title="django.core.validators.BaseValidator">BaseValidator</span></code></p>
13292
+
13293
+
13294
+ <p>Ensure that a field's value is not equal to any of the specified values.</p>
13295
+
13296
+
13297
+
13165
13298
 
13166
13299
 
13167
- <p>Ensure that a field's value is not equal to any of the specified values.</p>
13168
13300
 
13169
13301
 
13170
13302
 
@@ -13200,10 +13332,10 @@ schemes specified in the configuration.</p>
13200
13332
 
13201
13333
  <div class="doc doc-contents ">
13202
13334
  <p class="doc doc-class-bases">
13203
- Bases: <code><autoref identifier="nautobot.core.models.fields.ForeignKeyWithAutoRelatedName" optional hover>ForeignKeyWithAutoRelatedName</autoref></code></p>
13335
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.models.fields.ForeignKeyWithAutoRelatedName" href="#nautobot.apps.models.ForeignKeyWithAutoRelatedName">ForeignKeyWithAutoRelatedName</a></code></p>
13204
13336
 
13205
13337
 
13206
- <p>An abstract model field that automatically restricts ForeignKey options based on content_types.</p>
13338
+ <p>An abstract model field that automatically restricts ForeignKey options based on content_types.</p>
13207
13339
  <p>For instance, if the model "Role" contains two records: role_1 and role_2, role_1's content_types
13208
13340
  are set to "dcim.location" and "dcim.device" while the role_2's content_types are set to
13209
13341
  "circuit.circuit" and "dcim.location."</p>
@@ -13220,6 +13352,11 @@ while role_1 &amp; role_2 are both available for the Location model.</p>
13220
13352
 
13221
13353
 
13222
13354
 
13355
+
13356
+
13357
+
13358
+
13359
+
13223
13360
  <div class="doc doc-children">
13224
13361
 
13225
13362
 
@@ -13241,7 +13378,7 @@ while role_1 &amp; role_2 are both available for the Location model.</p>
13241
13378
 
13242
13379
  <div class="doc doc-contents ">
13243
13380
 
13244
- <p>Return a prepped formfield for use in model forms.</p>
13381
+ <p>Return a prepped formfield for use in model forms.</p>
13245
13382
 
13246
13383
  </div>
13247
13384
 
@@ -13258,7 +13395,7 @@ while role_1 &amp; role_2 are both available for the Location model.</p>
13258
13395
 
13259
13396
  <div class="doc doc-contents ">
13260
13397
 
13261
- <p>Limit this field to only objects which are assigned to this model's content-type.</p>
13398
+ <p>Limit this field to only objects which are assigned to this model's content-type.</p>
13262
13399
  <p>Note that this is implemented via specifying <code>content_types__app_label=</code> and <code>content_types__model=</code>
13263
13400
  rather than via the more obvious <code>content_types=ContentType.objects.get_for_model(self.model)</code>
13264
13401
  because the latter approach would involve a database query, and in some cases
@@ -13289,10 +13426,10 @@ because the latter approach would involve a database query, and in some cases
13289
13426
 
13290
13427
  <div class="doc doc-contents ">
13291
13428
  <p class="doc doc-class-bases">
13292
- Bases: <code><autoref identifier="django.db.models.ForeignKey" optional hover>ForeignKey</autoref></code></p>
13429
+ Bases: <code><span title="django.db.models.ForeignKey">ForeignKey</span></code></p>
13293
13430
 
13294
13431
 
13295
- <p>Extend base ForeignKey functionality to create a smarter default <code>related_name</code>.</p>
13432
+ <p>Extend base ForeignKey functionality to create a smarter default <code>related_name</code>.</p>
13296
13433
  <p>For example, "ip_addresses" instead of "ipaddress_set", "ipaddresss", or "ipam_ipaddress_related".</p>
13297
13434
  <p>Primarily useful for cases of abstract base classes that define ForeignKeys, such as
13298
13435
  <code>nautobot.dcim.models.device_components.ComponentModel</code>.</p>
@@ -13300,6 +13437,11 @@ because the latter approach would involve a database query, and in some cases
13300
13437
 
13301
13438
 
13302
13439
 
13440
+
13441
+
13442
+
13443
+
13444
+
13303
13445
  <div class="doc doc-children">
13304
13446
 
13305
13447
 
@@ -13331,16 +13473,21 @@ because the latter approach would involve a database query, and in some cases
13331
13473
 
13332
13474
  <div class="doc doc-contents ">
13333
13475
  <p class="doc doc-class-bases">
13334
- Bases: <code><autoref identifier="django.db.models.JSONField" optional hover>JSONField</autoref></code></p>
13476
+ Bases: <code><span title="django.db.models.JSONField">JSONField</span></code></p>
13335
13477
 
13336
13478
 
13337
- <p>An ArrayField implementation backed JSON storage.
13479
+ <p>An ArrayField implementation backed JSON storage.
13338
13480
  Replicates ArrayField's base field validation.</p>
13339
13481
  <p>Supports choices in the base field.</p>
13340
13482
 
13341
13483
 
13342
13484
 
13343
13485
 
13486
+
13487
+
13488
+
13489
+
13490
+
13344
13491
  <div class="doc doc-children">
13345
13492
 
13346
13493
 
@@ -13391,7 +13538,7 @@ Replicates ArrayField's base field validation.</p>
13391
13538
 
13392
13539
  <div class="doc doc-contents ">
13393
13540
 
13394
- <p>Return a django.forms.Field instance for this field.</p>
13541
+ <p>Return a django.forms.Field instance for this field.</p>
13395
13542
 
13396
13543
  </div>
13397
13544
 
@@ -13408,7 +13555,7 @@ Replicates ArrayField's base field validation.</p>
13408
13555
 
13409
13556
  <div class="doc doc-contents ">
13410
13557
 
13411
- <p>Perform preliminary non-db specific value checks and conversions.</p>
13558
+ <p>Perform preliminary non-db specific value checks and conversions.</p>
13412
13559
 
13413
13560
  </div>
13414
13561
 
@@ -13425,7 +13572,7 @@ Replicates ArrayField's base field validation.</p>
13425
13572
 
13426
13573
  <div class="doc doc-contents ">
13427
13574
 
13428
- <p>Runs all validators against <code>value</code> and raise ValidationError if necessary.
13575
+ <p>Runs all validators against <code>value</code> and raise ValidationError if necessary.
13429
13576
  Some validators can't be created at field initialization time.</p>
13430
13577
 
13431
13578
  </div>
@@ -13443,7 +13590,7 @@ Some validators can't be created at field initialization time.</p>
13443
13590
 
13444
13591
  <div class="doc doc-contents ">
13445
13592
 
13446
- <p>Convert <code>value</code> into JSON, raising django.core.exceptions.ValidationError
13593
+ <p>Convert <code>value</code> into JSON, raising django.core.exceptions.ValidationError
13447
13594
  if the data can't be converted. Return the converted value.</p>
13448
13595
 
13449
13596
  </div>
@@ -13461,7 +13608,7 @@ if the data can't be converted. Return the converted value.</p>
13461
13608
 
13462
13609
  <div class="doc doc-contents ">
13463
13610
 
13464
- <p>Validate <code>value</code> and raise ValidationError if necessary.</p>
13611
+ <p>Validate <code>value</code> and raise ValidationError if necessary.</p>
13465
13612
 
13466
13613
  </div>
13467
13614
 
@@ -13478,7 +13625,7 @@ if the data can't be converted. Return the converted value.</p>
13478
13625
 
13479
13626
  <div class="doc doc-contents ">
13480
13627
 
13481
- <p>Return a string value of this field from the passed obj.
13628
+ <p>Return a string value of this field from the passed obj.
13482
13629
  This is used by the serialization framework.</p>
13483
13630
 
13484
13631
  </div>
@@ -13506,10 +13653,10 @@ This is used by the serialization framework.</p>
13506
13653
 
13507
13654
  <div class="doc doc-contents ">
13508
13655
  <p class="doc doc-class-bases">
13509
- Bases: <code><autoref identifier="django.db.models.Aggregate" optional hover>Aggregate</autoref></code></p>
13656
+ Bases: <code><span title="django.db.models.Aggregate">Aggregate</span></code></p>
13510
13657
 
13511
13658
 
13512
- <p>Like django.contrib.postgres.aggregates.JSONBAgg, but different.</p>
13659
+ <p>Like django.contrib.postgres.aggregates.JSONBAgg, but different.</p>
13513
13660
  <ol>
13514
13661
  <li>Supports both Postgres (JSONB_AGG) and MySQL (JSON_ARRAYAGG)</li>
13515
13662
  <li>Does not support <code>ordering</code> as JSON_ARRAYAGG does not guarantee ordering.</li>
@@ -13518,6 +13665,11 @@ This is used by the serialization framework.</p>
13518
13665
 
13519
13666
 
13520
13667
 
13668
+
13669
+
13670
+
13671
+
13672
+
13521
13673
  <div class="doc doc-children">
13522
13674
 
13523
13675
 
@@ -13549,10 +13701,15 @@ This is used by the serialization framework.</p>
13549
13701
 
13550
13702
  <div class="doc doc-contents ">
13551
13703
  <p class="doc doc-class-bases">
13552
- Bases: <code><autoref identifier="django.db.models.URLField" optional hover>URLField</autoref></code></p>
13704
+ Bases: <code><span title="django.db.models.URLField">URLField</span></code></p>
13705
+
13706
+
13707
+ <p>Like models.URLField, but using validators.EnhancedURLValidator and forms.LaxURLField.</p>
13708
+
13709
+
13710
+
13553
13711
 
13554
13712
 
13555
- <p>Like models.URLField, but using validators.EnhancedURLValidator and forms.LaxURLField.</p>
13556
13713
 
13557
13714
 
13558
13715
 
@@ -13588,15 +13745,20 @@ This is used by the serialization framework.</p>
13588
13745
 
13589
13746
  <div class="doc doc-contents ">
13590
13747
  <p class="doc doc-class-bases">
13591
- Bases: <code><autoref identifier="nautobot.extras.models.change_logging.ChangeLoggedModel" optional hover>ChangeLoggedModel</autoref></code>, <code><autoref identifier="nautobot.extras.models.mixins.ContactMixin" optional hover>ContactMixin</autoref></code>, <code><autoref identifier="nautobot.extras.models.customfields.CustomFieldModel" optional hover>CustomFieldModel</autoref></code>, <code><autoref identifier="nautobot.extras.models.mixins.DynamicGroupsModelMixin" optional hover>DynamicGroupsModelMixin</autoref></code>, <code><autoref identifier="nautobot.extras.models.mixins.NotesMixin" optional hover>NotesMixin</autoref></code>, <code><autoref identifier="nautobot.extras.models.relationships.RelationshipModel" optional hover>RelationshipModel</autoref></code>, <code><autoref identifier="nautobot.extras.models.mixins.SavedViewMixin" optional hover>SavedViewMixin</autoref></code>, <code><autoref identifier="nautobot.core.models.BaseModel" optional hover>BaseModel</autoref></code></p>
13748
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.extras.models.change_logging.ChangeLoggedModel" href="#nautobot.apps.models.ChangeLoggedModel">ChangeLoggedModel</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.extras.models.mixins.ContactMixin" href="#nautobot.apps.models.ContactMixin">ContactMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.extras.models.customfields.CustomFieldModel" href="#nautobot.apps.models.CustomFieldModel">CustomFieldModel</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.extras.models.mixins.DynamicGroupsModelMixin" href="#nautobot.apps.models.DynamicGroupsModelMixin">DynamicGroupsModelMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.extras.models.mixins.NotesMixin" href="#nautobot.apps.models.NotesMixin">NotesMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.extras.models.relationships.RelationshipModel" href="#nautobot.apps.models.RelationshipModel">RelationshipModel</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.extras.models.mixins.SavedViewMixin" href="#nautobot.apps.models.SavedViewMixin">SavedViewMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.models.BaseModel" href="#nautobot.apps.models.BaseModel">BaseModel</a></code></p>
13592
13749
 
13593
13750
 
13594
- <p>This abstract base properties model contains fields and functionality that are
13751
+ <p>This abstract base properties model contains fields and functionality that are
13595
13752
  shared amongst models that requires these fields: name, color, content_types and description.</p>
13596
13753
 
13597
13754
 
13598
13755
 
13599
13756
 
13757
+
13758
+
13759
+
13760
+
13761
+
13600
13762
  <div class="doc doc-children">
13601
13763
 
13602
13764
 
@@ -13628,16 +13790,21 @@ shared amongst models that requires these fields: name, color, content_types and
13628
13790
 
13629
13791
  <div class="doc doc-contents ">
13630
13792
  <p class="doc doc-class-bases">
13631
- Bases: <code><autoref identifier="django.db.models.CharField" optional hover>CharField</autoref></code></p>
13793
+ Bases: <code><span title="django.db.models.CharField">CharField</span></code></p>
13632
13794
 
13633
13795
 
13634
- <p>A field which stores a naturalized representation of its target field, to be used for ordering its parent model.</p>
13796
+ <p>A field which stores a naturalized representation of its target field, to be used for ordering its parent model.</p>
13635
13797
  <p>:param target_field: Name of the field of the parent model to be naturalized
13636
13798
  :param naturalize_function: The function used to generate a naturalized value (optional)</p>
13637
13799
 
13638
13800
 
13639
13801
 
13640
13802
 
13803
+
13804
+
13805
+
13806
+
13807
+
13641
13808
  <div class="doc doc-children">
13642
13809
 
13643
13810
 
@@ -13659,7 +13826,7 @@ shared amongst models that requires these fields: name, color, content_types and
13659
13826
 
13660
13827
  <div class="doc doc-contents ">
13661
13828
 
13662
- <p>Generate a naturalized value from the target field</p>
13829
+ <p>Generate a naturalized value from the target field</p>
13663
13830
 
13664
13831
  </div>
13665
13832
 
@@ -13687,7 +13854,12 @@ shared amongst models that requires these fields: name, color, content_types and
13687
13854
  <div class="doc doc-contents ">
13688
13855
 
13689
13856
 
13690
- <p>Adds a <code>notes</code> property that returns a queryset of <code>Notes</code> membership.</p>
13857
+ <p>Adds a <code>notes</code> property that returns a queryset of <code>Notes</code> membership.</p>
13858
+
13859
+
13860
+
13861
+
13862
+
13691
13863
 
13692
13864
 
13693
13865
 
@@ -13716,7 +13888,7 @@ shared amongst models that requires these fields: name, color, content_types and
13716
13888
 
13717
13889
  <div class="doc doc-contents ">
13718
13890
 
13719
- <p>Return a <code>Notes</code> queryset for this instance.</p>
13891
+ <p>Return a <code>Notes</code> queryset for this instance.</p>
13720
13892
  </div>
13721
13893
 
13722
13894
  </div>
@@ -13734,7 +13906,7 @@ shared amongst models that requires these fields: name, color, content_types and
13734
13906
 
13735
13907
  <div class="doc doc-contents ">
13736
13908
 
13737
- <p>Return the notes URL for a given instance.</p>
13909
+ <p>Return the notes URL for a given instance.</p>
13738
13910
 
13739
13911
  </div>
13740
13912
 
@@ -13761,10 +13933,10 @@ shared amongst models that requires these fields: name, color, content_types and
13761
13933
 
13762
13934
  <div class="doc doc-contents ">
13763
13935
  <p class="doc doc-class-bases">
13764
- Bases: <code><autoref identifier="nautobot.extras.models.change_logging.ChangeLoggedModel" optional hover>ChangeLoggedModel</autoref></code>, <code><autoref identifier="nautobot.extras.models.mixins.ContactMixin" optional hover>ContactMixin</autoref></code>, <code><autoref identifier="nautobot.extras.models.customfields.CustomFieldModel" optional hover>CustomFieldModel</autoref></code>, <code><autoref identifier="nautobot.extras.models.mixins.DynamicGroupsModelMixin" optional hover>DynamicGroupsModelMixin</autoref></code>, <code><autoref identifier="nautobot.extras.models.mixins.NotesMixin" optional hover>NotesMixin</autoref></code>, <code><autoref identifier="nautobot.extras.models.relationships.RelationshipModel" optional hover>RelationshipModel</autoref></code>, <code><autoref identifier="nautobot.extras.models.mixins.SavedViewMixin" optional hover>SavedViewMixin</autoref></code>, <code><autoref identifier="nautobot.core.models.BaseModel" optional hover>BaseModel</autoref></code></p>
13936
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.extras.models.change_logging.ChangeLoggedModel" href="#nautobot.apps.models.ChangeLoggedModel">ChangeLoggedModel</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.extras.models.mixins.ContactMixin" href="#nautobot.apps.models.ContactMixin">ContactMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.extras.models.customfields.CustomFieldModel" href="#nautobot.apps.models.CustomFieldModel">CustomFieldModel</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.extras.models.mixins.DynamicGroupsModelMixin" href="#nautobot.apps.models.DynamicGroupsModelMixin">DynamicGroupsModelMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.extras.models.mixins.NotesMixin" href="#nautobot.apps.models.NotesMixin">NotesMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.extras.models.relationships.RelationshipModel" href="#nautobot.apps.models.RelationshipModel">RelationshipModel</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.extras.models.mixins.SavedViewMixin" href="#nautobot.apps.models.SavedViewMixin">SavedViewMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.models.BaseModel" href="#nautobot.apps.models.BaseModel">BaseModel</a></code></p>
13765
13937
 
13766
13938
 
13767
- <p>Base abstract model for all organizational models.</p>
13939
+ <p>Base abstract model for all organizational models.</p>
13768
13940
  <p>Organizational models aid the primary models by building structured relationships
13769
13941
  and logical groups, or categorizations. Organizational models do not typically
13770
13942
  represent concrete networking resources or assets, but rather they enable user
@@ -13774,6 +13946,11 @@ Device Role, Rack Group, Status, Manufacturer, and Platform.</p>
13774
13946
 
13775
13947
 
13776
13948
 
13949
+
13950
+
13951
+
13952
+
13953
+
13777
13954
  <div class="doc doc-children">
13778
13955
 
13779
13956
 
@@ -13805,10 +13982,10 @@ Device Role, Rack Group, Status, Manufacturer, and Platform.</p>
13805
13982
 
13806
13983
  <div class="doc doc-contents ">
13807
13984
  <p class="doc doc-class-bases">
13808
- Bases: <code><autoref identifier="nautobot.extras.models.change_logging.ChangeLoggedModel" optional hover>ChangeLoggedModel</autoref></code>, <code><autoref identifier="nautobot.extras.models.mixins.ContactMixin" optional hover>ContactMixin</autoref></code>, <code><autoref identifier="nautobot.extras.models.customfields.CustomFieldModel" optional hover>CustomFieldModel</autoref></code>, <code><autoref identifier="nautobot.extras.models.mixins.DynamicGroupsModelMixin" optional hover>DynamicGroupsModelMixin</autoref></code>, <code><autoref identifier="nautobot.extras.models.mixins.NotesMixin" optional hover>NotesMixin</autoref></code>, <code><autoref identifier="nautobot.extras.models.relationships.RelationshipModel" optional hover>RelationshipModel</autoref></code>, <code><autoref identifier="nautobot.extras.models.mixins.SavedViewMixin" optional hover>SavedViewMixin</autoref></code>, <code><autoref identifier="nautobot.core.models.BaseModel" optional hover>BaseModel</autoref></code></p>
13985
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.extras.models.change_logging.ChangeLoggedModel" href="#nautobot.apps.models.ChangeLoggedModel">ChangeLoggedModel</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.extras.models.mixins.ContactMixin" href="#nautobot.apps.models.ContactMixin">ContactMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.extras.models.customfields.CustomFieldModel" href="#nautobot.apps.models.CustomFieldModel">CustomFieldModel</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.extras.models.mixins.DynamicGroupsModelMixin" href="#nautobot.apps.models.DynamicGroupsModelMixin">DynamicGroupsModelMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.extras.models.mixins.NotesMixin" href="#nautobot.apps.models.NotesMixin">NotesMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.extras.models.relationships.RelationshipModel" href="#nautobot.apps.models.RelationshipModel">RelationshipModel</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.extras.models.mixins.SavedViewMixin" href="#nautobot.apps.models.SavedViewMixin">SavedViewMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.models.BaseModel" href="#nautobot.apps.models.BaseModel">BaseModel</a></code></p>
13809
13986
 
13810
13987
 
13811
- <p>Base abstract model for all primary models.</p>
13988
+ <p>Base abstract model for all primary models.</p>
13812
13989
  <p>A primary model is one which is materialistically relevant to the network datamodel.
13813
13990
  Such models form the basis of major elements of the data model, like Device,
13814
13991
  IP Address, Location, VLAN, Virtual Machine, etc. Primary models usually represent
@@ -13817,6 +13994,11 @@ tangible or logical resources on the network, or within the organization.</p>
13817
13994
 
13818
13995
 
13819
13996
 
13997
+
13998
+
13999
+
14000
+
14001
+
13820
14002
  <div class="doc doc-children">
13821
14003
 
13822
14004
 
@@ -13848,10 +14030,15 @@ tangible or logical resources on the network, or within the organization.</p>
13848
14030
 
13849
14031
  <div class="doc doc-contents ">
13850
14032
  <p class="doc doc-class-bases">
13851
- Bases: <code><autoref identifier="django.db.models.Model" optional hover>Model</autoref></code></p>
14033
+ Bases: <code><span title="django.db.models.Model">Model</span></code></p>
14034
+
14035
+
14036
+ <p>Abstract class for any model which may have custom relationships associated with it.</p>
14037
+
14038
+
14039
+
13852
14040
 
13853
14041
 
13854
- <p>Abstract class for any model which may have custom relationships associated with it.</p>
13855
14042
 
13856
14043
 
13857
14044
 
@@ -13877,7 +14064,7 @@ tangible or logical resources on the network, or within the organization.</p>
13877
14064
 
13878
14065
  <div class="doc doc-contents ">
13879
14066
 
13880
- <p>Return a dictionary of RelationshipAssociation querysets for all custom relationships</p>
14067
+ <p>Return a dictionary of RelationshipAssociation querysets for all custom relationships</p>
13881
14068
 
13882
14069
 
13883
14070
  <p><span class="doc-section-title">Returns:</span></p>
@@ -13891,7 +14078,7 @@ tangible or logical resources on the network, or within the organization.</p>
13891
14078
  <tbody>
13892
14079
  <tr class="doc-section-item">
13893
14080
  <td>
13894
- <code><autoref identifier="dict" optional>dict</autoref></code>
14081
+ <code>dict</code>
13895
14082
  </td>
13896
14083
  <td>
13897
14084
  <div class="doc-md-description">
@@ -13930,7 +14117,7 @@ tangible or logical resources on the network, or within the organization.</p>
13930
14117
 
13931
14118
  <div class="doc doc-contents ">
13932
14119
 
13933
- <p>Return a dictionary of relationships with the label and the value or the queryset for each.</p>
14120
+ <p>Return a dictionary of relationships with the label and the value or the queryset for each.</p>
13934
14121
  <p>Used for rendering relationships in the UI; see nautobot/core/templates/inc/relationships_table_rows.html</p>
13935
14122
 
13936
14123
 
@@ -13945,7 +14132,7 @@ tangible or logical resources on the network, or within the organization.</p>
13945
14132
  <tbody>
13946
14133
  <tr class="doc-section-item">
13947
14134
  <td>
13948
- <code><autoref identifier="dict" optional>dict</autoref></code>
14135
+ <code>dict</code>
13949
14136
  </td>
13950
14137
  <td>
13951
14138
  <div class="doc-md-description">
@@ -13994,7 +14181,7 @@ tangible or logical resources on the network, or within the organization.</p>
13994
14181
 
13995
14182
  <div class="doc doc-contents ">
13996
14183
 
13997
- <p>Same docstring as get_relationships_data() above except this only returns relationships
14184
+ <p>Same docstring as get_relationships_data() above except this only returns relationships
13998
14185
  where advanced_ui==True for displaying in the 'Advanced' tab on the object's page</p>
13999
14186
 
14000
14187
  </div>
@@ -14012,7 +14199,7 @@ where advanced_ui==True for displaying in the 'Advanced' tab on the object's pag
14012
14199
 
14013
14200
  <div class="doc doc-contents ">
14014
14201
 
14015
- <p>Same docstring as get_relationships_data() above except this only returns relationships
14202
+ <p>Same docstring as get_relationships_data() above except this only returns relationships
14016
14203
  where advanced_ui==False for displaying in the main object detail tab on the object's page</p>
14017
14204
 
14018
14205
  </div>
@@ -14030,7 +14217,7 @@ where advanced_ui==False for displaying in the main object detail tab on the obj
14030
14217
 
14031
14218
  <div class="doc doc-contents ">
14032
14219
 
14033
- <p>Alternative version of get_relationships().</p>
14220
+ <p>Alternative version of get_relationships().</p>
14034
14221
 
14035
14222
  </div>
14036
14223
 
@@ -14065,9 +14252,11 @@ where advanced_ui==False for displaying in the main object detail tab on the obj
14065
14252
  </thead>
14066
14253
  <tbody>
14067
14254
  <tr class="doc-section-item">
14068
- <td><code>output_for</code></td>
14069
14255
  <td>
14070
- <code><autoref identifier="str" optional>str</autoref></code>
14256
+ <code>output_for</code>
14257
+ </td>
14258
+ <td>
14259
+ <code>str</code>
14071
14260
  </td>
14072
14261
  <td>
14073
14262
  <div class="doc-md-description">
@@ -14079,9 +14268,11 @@ where advanced_ui==False for displaying in the main object detail tab on the obj
14079
14268
  </td>
14080
14269
  </tr>
14081
14270
  <tr class="doc-section-item">
14082
- <td><code>initial_data</code></td>
14083
14271
  <td>
14084
- <code><autoref identifier="dict" optional>dict</autoref></code>
14272
+ <code>initial_data</code>
14273
+ </td>
14274
+ <td>
14275
+ <code>dict</code>
14085
14276
  </td>
14086
14277
  <td>
14087
14278
  <div class="doc-md-description">
@@ -14093,9 +14284,11 @@ where advanced_ui==False for displaying in the main object detail tab on the obj
14093
14284
  </td>
14094
14285
  </tr>
14095
14286
  <tr class="doc-section-item">
14096
- <td><code>relationships_key_specified</code></td>
14097
14287
  <td>
14098
- <code><autoref identifier="bool" optional>bool</autoref></code>
14288
+ <code>relationships_key_specified</code>
14289
+ </td>
14290
+ <td>
14291
+ <code>bool</code>
14099
14292
  </td>
14100
14293
  <td>
14101
14294
  <div class="doc-md-description">
@@ -14107,9 +14300,11 @@ where advanced_ui==False for displaying in the main object detail tab on the obj
14107
14300
  </td>
14108
14301
  </tr>
14109
14302
  <tr class="doc-section-item">
14110
- <td><code>instance</code></td>
14111
14303
  <td>
14112
- <code><autoref identifier="Optional" optional>Optional</autoref>[<autoref identifier="nautobot.core.models.BaseModel" optional hover>BaseModel</autoref>]</code>
14304
+ <code>instance</code>
14305
+ </td>
14306
+ <td>
14307
+ <code>Optional[<a class="autorefs autorefs-internal" title="nautobot.core.models.BaseModel" href="#nautobot.apps.models.BaseModel">BaseModel</a>]</code>
14113
14308
  </td>
14114
14309
  <td>
14115
14310
  <div class="doc-md-description">
@@ -14122,7 +14317,7 @@ where advanced_ui==False for displaying in the main object detail tab on the obj
14122
14317
  </tr>
14123
14318
  </tbody>
14124
14319
  </table>
14125
- <p>Returns:
14320
+ <p>Returns:
14126
14321
  (list[dict]): List of field error dicts if any are found</p>
14127
14322
 
14128
14323
  </div>
@@ -14150,7 +14345,12 @@ where advanced_ui==False for displaying in the main object detail tab on the obj
14150
14345
 
14151
14346
  <div class="doc doc-contents ">
14152
14347
  <p class="doc doc-class-bases">
14153
- Bases: <code><autoref identifier="nautobot.core.models.querysets.CompositeKeyQuerySetMixin" optional hover>CompositeKeyQuerySetMixin</autoref></code>, <code><autoref identifier="django.db.models.QuerySet" optional hover>QuerySet</autoref></code></p>
14348
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.models.querysets.CompositeKeyQuerySetMixin" href="#nautobot.apps.models.CompositeKeyQuerySetMixin">CompositeKeyQuerySetMixin</a></code>, <code><span title="django.db.models.QuerySet">QuerySet</span></code></p>
14349
+
14350
+
14351
+
14352
+
14353
+
14154
14354
 
14155
14355
 
14156
14356
 
@@ -14177,7 +14377,7 @@ where advanced_ui==False for displaying in the main object detail tab on the obj
14177
14377
 
14178
14378
  <div class="doc doc-contents ">
14179
14379
 
14180
- <p>Check whether the given user can perform the given action with regard to the given instance of this model.</p>
14380
+ <p>Check whether the given user can perform the given action with regard to the given instance of this model.</p>
14181
14381
  <p>Either instance or pk must be specified, but not both.</p>
14182
14382
 
14183
14383
 
@@ -14193,9 +14393,11 @@ where advanced_ui==False for displaying in the main object detail tab on the obj
14193
14393
  </thead>
14194
14394
  <tbody>
14195
14395
  <tr class="doc-section-item">
14196
- <td><code>user</code></td>
14197
14396
  <td>
14198
- <code><autoref identifier="User" optional>User</autoref></code>
14397
+ <code>user</code>
14398
+ </td>
14399
+ <td>
14400
+ <code>User</code>
14199
14401
  </td>
14200
14402
  <td>
14201
14403
  <div class="doc-md-description">
@@ -14207,9 +14409,11 @@ where advanced_ui==False for displaying in the main object detail tab on the obj
14207
14409
  </td>
14208
14410
  </tr>
14209
14411
  <tr class="doc-section-item">
14210
- <td><code>instance</code></td>
14211
14412
  <td>
14212
- <code><autoref identifier="self.model" optional hover>model</autoref></code>
14413
+ <code>instance</code>
14414
+ </td>
14415
+ <td>
14416
+ <code><span title="self.model">model</span></code>
14213
14417
  </td>
14214
14418
  <td>
14215
14419
  <div class="doc-md-description">
@@ -14221,9 +14425,11 @@ where advanced_ui==False for displaying in the main object detail tab on the obj
14221
14425
  </td>
14222
14426
  </tr>
14223
14427
  <tr class="doc-section-item">
14224
- <td><code>pk</code></td>
14225
14428
  <td>
14226
- <code><autoref identifier="uuid" optional>uuid</autoref></code>
14429
+ <code>pk</code>
14430
+ </td>
14431
+ <td>
14432
+ <code>uuid</code>
14227
14433
  </td>
14228
14434
  <td>
14229
14435
  <div class="doc-md-description">
@@ -14235,9 +14441,11 @@ where advanced_ui==False for displaying in the main object detail tab on the obj
14235
14441
  </td>
14236
14442
  </tr>
14237
14443
  <tr class="doc-section-item">
14238
- <td><code>action</code></td>
14239
14444
  <td>
14240
- <code><autoref identifier="str" optional>str</autoref></code>
14445
+ <code>action</code>
14446
+ </td>
14447
+ <td>
14448
+ <code>str</code>
14241
14449
  </td>
14242
14450
  <td>
14243
14451
  <div class="doc-md-description">
@@ -14263,7 +14471,7 @@ where advanced_ui==False for displaying in the main object detail tab on the obj
14263
14471
  <tbody>
14264
14472
  <tr class="doc-section-item">
14265
14473
  <td>
14266
- <code><autoref identifier="bool" optional>bool</autoref></code>
14474
+ <code>bool</code>
14267
14475
  </td>
14268
14476
  <td>
14269
14477
  <div class="doc-md-description">
@@ -14289,7 +14497,7 @@ where advanced_ui==False for displaying in the main object detail tab on the obj
14289
14497
 
14290
14498
  <div class="doc doc-contents ">
14291
14499
 
14292
- <p>Wrapper for <code>QuerySet.values_list()</code> that adds the <code>distinct()</code> query to return a list of unique values.</p>
14500
+ <p>Wrapper for <code>QuerySet.values_list()</code> that adds the <code>distinct()</code> query to return a list of unique values.</p>
14293
14501
 
14294
14502
 
14295
14503
  <details class="note" open>
@@ -14310,9 +14518,11 @@ in the Django <code>distinct()</code> documentation at https://docs.djangoprojec
14310
14518
  </thead>
14311
14519
  <tbody>
14312
14520
  <tr class="doc-section-item">
14313
- <td><code>*fields</code></td>
14314
14521
  <td>
14315
- <code><autoref identifier="str" optional>str</autoref></code>
14522
+ <code>*fields</code>
14523
+ </td>
14524
+ <td>
14525
+ <code>str</code>
14316
14526
  </td>
14317
14527
  <td>
14318
14528
  <div class="doc-md-description">
@@ -14324,9 +14534,11 @@ in the Django <code>distinct()</code> documentation at https://docs.djangoprojec
14324
14534
  </td>
14325
14535
  </tr>
14326
14536
  <tr class="doc-section-item">
14327
- <td><code>flat</code></td>
14328
14537
  <td>
14329
- <code><autoref identifier="bool" optional>bool</autoref></code>
14538
+ <code>flat</code>
14539
+ </td>
14540
+ <td>
14541
+ <code>bool</code>
14330
14542
  </td>
14331
14543
  <td>
14332
14544
  <div class="doc-md-description">
@@ -14339,9 +14551,11 @@ Defaults to False.</p>
14339
14551
  </td>
14340
14552
  </tr>
14341
14553
  <tr class="doc-section-item">
14342
- <td><code>named</code></td>
14343
14554
  <td>
14344
- <code><autoref identifier="bool" optional>bool</autoref></code>
14555
+ <code>named</code>
14556
+ </td>
14557
+ <td>
14558
+ <code>bool</code>
14345
14559
  </td>
14346
14560
  <td>
14347
14561
  <div class="doc-md-description">
@@ -14367,7 +14581,7 @@ Defaults to False.</p>
14367
14581
  <tbody>
14368
14582
  <tr class="doc-section-item">
14369
14583
  <td>
14370
- <code><autoref identifier="django.db.models.QuerySet" optional hover>QuerySet</autoref></code>
14584
+ <code><span title="django.db.models.QuerySet">QuerySet</span></code>
14371
14585
  </td>
14372
14586
  <td>
14373
14587
  <div class="doc-md-description">
@@ -14393,7 +14607,7 @@ Defaults to False.</p>
14393
14607
 
14394
14608
  <div class="doc doc-contents ">
14395
14609
 
14396
- <p>Filter the QuerySet to return only objects on which the specified user has been granted the specified
14610
+ <p>Filter the QuerySet to return only objects on which the specified user has been granted the specified
14397
14611
  permission.</p>
14398
14612
  <p>:param user: User instance
14399
14613
  :param action: The action which must be permitted (e.g. "view" for "dcim.view_location"); default is 'view'</p>
@@ -14423,10 +14637,15 @@ permission.</p>
14423
14637
 
14424
14638
  <div class="doc doc-contents ">
14425
14639
  <p class="doc doc-class-bases">
14426
- Bases: <code><autoref identifier="django.db.models.Model" optional hover>Model</autoref></code></p>
14640
+ Bases: <code><span title="django.db.models.Model">Model</span></code></p>
14641
+
14642
+
14643
+ <p>Abstract mixin for enabling Saved View functionality to a given model class.</p>
14644
+
14645
+
14646
+
14427
14647
 
14428
14648
 
14429
- <p>Abstract mixin for enabling Saved View functionality to a given model class.</p>
14430
14649
 
14431
14650
 
14432
14651
 
@@ -14462,10 +14681,10 @@ permission.</p>
14462
14681
 
14463
14682
  <div class="doc doc-contents ">
14464
14683
  <p class="doc doc-class-bases">
14465
- Bases: <code><autoref identifier="nautobot.core.models.fields.ForeignKeyLimitedByContentTypes" optional hover>ForeignKeyLimitedByContentTypes</autoref></code></p>
14684
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.models.fields.ForeignKeyLimitedByContentTypes" href="#nautobot.apps.models.ForeignKeyLimitedByContentTypes">ForeignKeyLimitedByContentTypes</a></code></p>
14466
14685
 
14467
14686
 
14468
- <p>Model database field that automatically limits custom choices.</p>
14687
+ <p>Model database field that automatically limits custom choices.</p>
14469
14688
  <p>The limit_choices_to for the field are automatically derived from:</p>
14470
14689
  <div class="highlight"><pre><span></span><code>- the content-type to which the field is attached (e.g. `dcim.device`)
14471
14690
  </code></pre></div>
@@ -14473,6 +14692,11 @@ permission.</p>
14473
14692
 
14474
14693
 
14475
14694
 
14695
+
14696
+
14697
+
14698
+
14699
+
14476
14700
  <div class="doc doc-children">
14477
14701
 
14478
14702
 
@@ -14494,7 +14718,7 @@ permission.</p>
14494
14718
 
14495
14719
  <div class="doc doc-contents ">
14496
14720
 
14497
- <p>Overload default so that we can assert that <code>.get_FOO_display</code> is
14721
+ <p>Overload default so that we can assert that <code>.get_FOO_display</code> is
14498
14722
  attached to any model that is using a <code>StatusField</code>.</p>
14499
14723
  <p>Using <code>.contribute_to_class()</code> is how field objects get added to the model
14500
14724
  at during the instance preparation. This is also where any custom model
@@ -14528,15 +14752,20 @@ having to define it on the model yourself.</p>
14528
14752
 
14529
14753
  <div class="doc doc-contents ">
14530
14754
  <p class="doc doc-class-bases">
14531
- Bases: <code><autoref identifier="django.db.models.Model" optional hover>Model</autoref></code></p>
14755
+ Bases: <code><span title="django.db.models.Model">Model</span></code></p>
14532
14756
 
14533
14757
 
14534
- <p>Deprecated abstract base class for any model which may have statuses.</p>
14758
+ <p>Deprecated abstract base class for any model which may have statuses.</p>
14535
14759
  <p>Just directly include a StatusField instead for any new models.</p>
14536
14760
 
14537
14761
 
14538
14762
 
14539
14763
 
14764
+
14765
+
14766
+
14767
+
14768
+
14540
14769
  <div class="doc doc-children">
14541
14770
 
14542
14771
 
@@ -14568,10 +14797,15 @@ having to define it on the model yourself.</p>
14568
14797
 
14569
14798
  <div class="doc doc-contents ">
14570
14799
  <p class="doc doc-class-bases">
14571
- Bases: <code><autoref identifier="taggit.managers.TaggableManager" optional hover>TaggableManager</autoref></code></p>
14800
+ Bases: <code><span title="taggit.managers.TaggableManager">TaggableManager</span></code></p>
14801
+
14802
+
14803
+ <p>Override FormField method on taggit.managers.TaggableManager to match the Nautobot UI.</p>
14804
+
14805
+
14806
+
14572
14807
 
14573
14808
 
14574
- <p>Override FormField method on taggit.managers.TaggableManager to match the Nautobot UI.</p>
14575
14809
 
14576
14810
 
14577
14811
 
@@ -14607,10 +14841,15 @@ having to define it on the model yourself.</p>
14607
14841
 
14608
14842
  <div class="doc doc-contents ">
14609
14843
  <p class="doc doc-class-bases">
14610
- Bases: <code><autoref identifier="taggit.managers._TaggableManager" optional hover>_TaggableManager</autoref></code>, <code><autoref identifier="nautobot.core.models.managers.BaseManager" optional hover>BaseManager</autoref></code></p>
14844
+ Bases: <code><span title="taggit.managers._TaggableManager">_TaggableManager</span></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.models.managers.BaseManager" href="#nautobot.apps.models.BaseManager">BaseManager</a></code></p>
14845
+
14846
+
14847
+ <p>Manager class for model 'tags' fields.</p>
14848
+
14849
+
14850
+
14611
14851
 
14612
14852
 
14613
- <p>Manager class for model 'tags' fields.</p>
14614
14853
 
14615
14854
 
14616
14855
 
@@ -14646,10 +14885,15 @@ having to define it on the model yourself.</p>
14646
14885
 
14647
14886
  <div class="doc doc-contents ">
14648
14887
  <p class="doc doc-class-bases">
14649
- Bases: <code><autoref identifier="tree_queries.query.TreeManager" optional hover>TreeManager</autoref></code>, <code><autoref identifier="nautobot.core.models.BaseManager.from_queryset" optional hover>from_queryset</autoref>(<autoref identifier="nautobot.core.models.tree_queries.TreeQuerySet" optional hover>TreeQuerySet</autoref>)</code></p>
14888
+ Bases: <code><span title="tree_queries.query.TreeManager">TreeManager</span></code>, <code><span title="nautobot.core.models.BaseManager.from_queryset">from_queryset</span>(<a class="autorefs autorefs-internal" title="nautobot.core.models.tree_queries.TreeQuerySet" href="#nautobot.apps.models.TreeQuerySet">TreeQuerySet</a>)</code></p>
14889
+
14890
+
14891
+ <p>Extend django-tree-queries' TreeManager to incorporate RestrictedQuerySet.</p>
14892
+
14893
+
14894
+
14650
14895
 
14651
14896
 
14652
- <p>Extend django-tree-queries' TreeManager to incorporate RestrictedQuerySet.</p>
14653
14897
 
14654
14898
 
14655
14899
 
@@ -14678,7 +14922,7 @@ having to define it on the model yourself.</p>
14678
14922
 
14679
14923
  <div class="doc doc-contents ">
14680
14924
 
14681
- <p>Cacheable version of <code>TreeQuerySet.max_tree_depth()</code>.</p>
14925
+ <p>Cacheable version of <code>TreeQuerySet.max_tree_depth()</code>.</p>
14682
14926
  <p>Generally TreeManagers are persistent objects while TreeQuerySets are not, hence the difference in behavior.</p>
14683
14927
  </div>
14684
14928
 
@@ -14707,10 +14951,15 @@ having to define it on the model yourself.</p>
14707
14951
 
14708
14952
  <div class="doc doc-contents ">
14709
14953
  <p class="doc doc-class-bases">
14710
- Bases: <code><autoref identifier="tree_queries.models.TreeNode" optional hover>TreeNode</autoref></code></p>
14954
+ Bases: <code><span title="tree_queries.models.TreeNode">TreeNode</span></code></p>
14955
+
14956
+
14957
+ <p>Nautobot-specific base class for models that exist in a self-referential tree.</p>
14958
+
14959
+
14960
+
14711
14961
 
14712
14962
 
14713
- <p>Nautobot-specific base class for models that exist in a self-referential tree.</p>
14714
14963
 
14715
14964
 
14716
14965
 
@@ -14739,7 +14988,7 @@ having to define it on the model yourself.</p>
14739
14988
 
14740
14989
  <div class="doc doc-contents ">
14741
14990
 
14742
- <p>By default, TreeModels display their full ancestry for clarity.</p>
14991
+ <p>By default, TreeModels display their full ancestry for clarity.</p>
14743
14992
  <p>As this is an expensive thing to calculate, we cache it for a few seconds in the case of repeated lookups.</p>
14744
14993
  </div>
14745
14994
 
@@ -14768,10 +15017,15 @@ having to define it on the model yourself.</p>
14768
15017
 
14769
15018
  <div class="doc doc-contents ">
14770
15019
  <p class="doc doc-class-bases">
14771
- Bases: <code><autoref identifier="tree_queries.query.TreeQuerySet" optional hover>TreeQuerySet</autoref></code>, <code><autoref identifier="nautobot.core.models.querysets.RestrictedQuerySet" optional hover>RestrictedQuerySet</autoref></code></p>
15020
+ Bases: <code><span title="tree_queries.query.TreeQuerySet">TreeQuerySet</span></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.models.querysets.RestrictedQuerySet" href="#nautobot.apps.models.RestrictedQuerySet">RestrictedQuerySet</a></code></p>
15021
+
15022
+
15023
+ <p>Combine django-tree-queries' TreeQuerySet with our RestrictedQuerySet for permissions enforcement.</p>
15024
+
15025
+
15026
+
14772
15027
 
14773
15028
 
14774
- <p>Combine django-tree-queries' TreeQuerySet with our RestrictedQuerySet for permissions enforcement.</p>
14775
15029
 
14776
15030
 
14777
15031
 
@@ -14797,7 +15051,7 @@ having to define it on the model yourself.</p>
14797
15051
 
14798
15052
  <div class="doc doc-contents ">
14799
15053
 
14800
- <p>Custom ancestors method for optimization purposes.</p>
15054
+ <p>Custom ancestors method for optimization purposes.</p>
14801
15055
  <p>Dynamically computes ancestors either through the tree or through the <code>parent</code> foreign key depending on whether
14802
15056
  tree fields are present on <code>of</code>.</p>
14803
15057
 
@@ -14816,7 +15070,7 @@ tree fields are present on <code>of</code>.</p>
14816
15070
 
14817
15071
  <div class="doc doc-contents ">
14818
15072
 
14819
- <p>Get the maximum tree depth of any node in this queryset.</p>
15073
+ <p>Get the maximum tree depth of any node in this queryset.</p>
14820
15074
  <p>In most cases you should use TreeManager.max_depth instead as it's cached and this is not.</p>
14821
15075
  <p>root - depth 0
14822
15076
  \
@@ -14852,15 +15106,20 @@ This is probably a bug, we should really return -1 in the case of an empty query
14852
15106
 
14853
15107
  <div class="doc doc-contents ">
14854
15108
  <p class="doc doc-class-bases">
14855
- Bases: <code><autoref identifier="django.core.validators.RegexValidator" optional hover>RegexValidator</autoref></code></p>
15109
+ Bases: <code><span title="django.core.validators.RegexValidator">RegexValidator</span></code></p>
14856
15110
 
14857
15111
 
14858
- <p>Checks that the value is a valid regular expression.</p>
15112
+ <p>Checks that the value is a valid regular expression.</p>
14859
15113
  <p>Don't confuse this with <code>RegexValidator</code>, which <em>uses</em> a regex to validate a value.</p>
14860
15114
 
14861
15115
 
14862
15116
 
14863
15117
 
15118
+
15119
+
15120
+
15121
+
15122
+
14864
15123
  <div class="doc doc-children">
14865
15124
 
14866
15125
 
@@ -14892,10 +15151,15 @@ This is probably a bug, we should really return -1 in the case of an empty query
14892
15151
 
14893
15152
  <div class="doc doc-contents ">
14894
15153
  <p class="doc doc-class-bases">
14895
- Bases: <code><autoref identifier="django.db.models.BinaryField" optional hover>BinaryField</autoref></code></p>
15154
+ Bases: <code><span title="django.db.models.BinaryField">BinaryField</span></code></p>
15155
+
15156
+
15157
+ <p>IP network address</p>
15158
+
15159
+
15160
+
14896
15161
 
14897
15162
 
14898
- <p>IP network address</p>
14899
15163
 
14900
15164
 
14901
15165
 
@@ -14921,7 +15185,7 @@ This is probably a bug, we should really return -1 in the case of an empty query
14921
15185
 
14922
15186
  <div class="doc doc-contents ">
14923
15187
 
14924
- <p>Returns the correct field type for a given database vendor.</p>
15188
+ <p>Returns the correct field type for a given database vendor.</p>
14925
15189
 
14926
15190
  </div>
14927
15191
 
@@ -14938,7 +15202,7 @@ This is probably a bug, we should really return -1 in the case of an empty query
14938
15202
 
14939
15203
  <div class="doc doc-contents ">
14940
15204
 
14941
- <p>Converts DB (varbinary) to Python (str).</p>
15205
+ <p>Converts DB (varbinary) to Python (str).</p>
14942
15206
 
14943
15207
  </div>
14944
15208
 
@@ -14955,7 +15219,7 @@ This is probably a bug, we should really return -1 in the case of an empty query
14955
15219
 
14956
15220
  <div class="doc doc-contents ">
14957
15221
 
14958
- <p>Converts Python (str) to DB (varbinary).</p>
15222
+ <p>Converts Python (str) to DB (varbinary).</p>
14959
15223
 
14960
15224
  </div>
14961
15225
 
@@ -14972,7 +15236,7 @@ This is probably a bug, we should really return -1 in the case of an empty query
14972
15236
 
14973
15237
  <div class="doc doc-contents ">
14974
15238
 
14975
- <p>Converts <code>value</code> to Python (str).</p>
15239
+ <p>Converts <code>value</code> to Python (str).</p>
14976
15240
 
14977
15241
  </div>
14978
15242
 
@@ -14989,7 +15253,7 @@ This is probably a bug, we should really return -1 in the case of an empty query
14989
15253
 
14990
15254
  <div class="doc doc-contents ">
14991
15255
 
14992
- <p>IPField is serialized as str(IPAddress())</p>
15256
+ <p>IPField is serialized as str(IPAddress())</p>
14993
15257
 
14994
15258
  </div>
14995
15259
 
@@ -15015,7 +15279,7 @@ This is probably a bug, we should really return -1 in the case of an empty query
15015
15279
 
15016
15280
  <div class="doc doc-contents ">
15017
15281
 
15018
- <p>Generate an efficient, human-friendly string from a set of integers. Intended for use with ArrayField.
15282
+ <p>Generate an efficient, human-friendly string from a set of integers. Intended for use with ArrayField.
15019
15283
  For example:
15020
15284
  [0, 1, 2, 10, 14, 15, 16] =&gt; "0-2, 10, 14-16"</p>
15021
15285
 
@@ -15034,7 +15298,7 @@ For example:
15034
15298
 
15035
15299
  <div class="doc doc-contents ">
15036
15300
 
15037
- <p>Convert the given list of natural key values to a single URL-path-usable string.</p>
15301
+ <p>Convert the given list of natural key values to a single URL-path-usable string.</p>
15038
15302
  <ul>
15039
15303
  <li>Non-URL-safe characters are percent-encoded.</li>
15040
15304
  <li>Null (<code>None</code>) values are percent-encoded as a literal null character <code>%00</code>.</li>
@@ -15056,7 +15320,7 @@ For example:
15056
15320
 
15057
15321
  <div class="doc doc-contents ">
15058
15322
 
15059
- <p>Convert the given list of natural key <code>values</code> to a single human-readable string.</p>
15323
+ <p>Convert the given list of natural key <code>values</code> to a single human-readable string.</p>
15060
15324
  <p>If <code>pk</code> is provided, it will be appended to the end of the natural slug. If the PK is a UUID,
15061
15325
  only the first four characters will be appended.</p>
15062
15326
  <p>A third-party lossy <code>slugify()</code> function is used to convert each natural key value to a
@@ -15087,7 +15351,7 @@ slug, and then they are joined with an underscore.</p>
15087
15351
 
15088
15352
  <div class="doc doc-contents ">
15089
15353
 
15090
- <p>Return a Subquery suitable for annotating a child object count.</p>
15354
+ <p>Return a Subquery suitable for annotating a child object count.</p>
15091
15355
 
15092
15356
 
15093
15357
  <p><span class="doc-section-title">Parameters:</span></p>
@@ -15102,9 +15366,11 @@ slug, and then they are joined with an underscore.</p>
15102
15366
  </thead>
15103
15367
  <tbody>
15104
15368
  <tr class="doc-section-item">
15105
- <td><code>model</code></td>
15106
15369
  <td>
15107
- <code><autoref identifier="Model" optional>Model</autoref></code>
15370
+ <code>model</code>
15371
+ </td>
15372
+ <td>
15373
+ <code>Model</code>
15108
15374
  </td>
15109
15375
  <td>
15110
15376
  <div class="doc-md-description">
@@ -15116,9 +15382,11 @@ slug, and then they are joined with an underscore.</p>
15116
15382
  </td>
15117
15383
  </tr>
15118
15384
  <tr class="doc-section-item">
15119
- <td><code>field</code></td>
15120
15385
  <td>
15121
- <code><autoref identifier="str" optional>str</autoref></code>
15386
+ <code>field</code>
15387
+ </td>
15388
+ <td>
15389
+ <code>str</code>
15122
15390
  </td>
15123
15391
  <td>
15124
15392
  <div class="doc-md-description">
@@ -15130,9 +15398,11 @@ slug, and then they are joined with an underscore.</p>
15130
15398
  </td>
15131
15399
  </tr>
15132
15400
  <tr class="doc-section-item">
15133
- <td><code>filter_dict</code></td>
15134
15401
  <td>
15135
- <code><autoref identifier="dict" optional>dict</autoref></code>
15402
+ <code>filter_dict</code>
15403
+ </td>
15404
+ <td>
15405
+ <code>dict</code>
15136
15406
  </td>
15137
15407
  <td>
15138
15408
  <div class="doc-md-description">
@@ -15144,9 +15414,11 @@ slug, and then they are joined with an underscore.</p>
15144
15414
  </td>
15145
15415
  </tr>
15146
15416
  <tr class="doc-section-item">
15147
- <td><code>manager_name</code></td>
15148
15417
  <td>
15149
- <code><autoref identifier="str" optional>str</autoref></code>
15418
+ <code>manager_name</code>
15419
+ </td>
15420
+ <td>
15421
+ <code>str</code>
15150
15422
  </td>
15151
15423
  <td>
15152
15424
  <div class="doc-md-description">
@@ -15175,7 +15447,7 @@ slug, and then they are joined with an underscore.</p>
15175
15447
 
15176
15448
  <div class="doc doc-contents ">
15177
15449
 
15178
- <p>Convert the given composite-key string back to a list of distinct values.</p>
15450
+ <p>Convert the given composite-key string back to a list of distinct values.</p>
15179
15451
  <ul>
15180
15452
  <li>Percent-encoded characters are converted back to their raw values</li>
15181
15453
  <li>Single literal null characters <code>%00</code> are converted back to a Python <code>None</code>.</li>
@@ -15197,7 +15469,7 @@ slug, and then they are joined with an underscore.</p>
15197
15469
 
15198
15470
  <div class="doc doc-contents ">
15199
15471
 
15200
- <p>Decorator used to register extras provided features to a model</p>
15472
+ <p>Decorator used to register extras provided features to a model</p>
15201
15473
 
15202
15474
  </div>
15203
15475
 
@@ -15214,7 +15486,7 @@ slug, and then they are joined with an underscore.</p>
15214
15486
 
15215
15487
  <div class="doc doc-contents ">
15216
15488
 
15217
- <p>Find all models that have fields with the specified names and satisfy the additional constraints,
15489
+ <p>Find all models that have fields with the specified names and satisfy the additional constraints,
15218
15490
  and return them grouped by app.</p>
15219
15491
 
15220
15492
 
@@ -15230,9 +15502,11 @@ and return them grouped by app.</p>
15230
15502
  </thead>
15231
15503
  <tbody>
15232
15504
  <tr class="doc-section-item">
15233
- <td><code>app_models</code></td>
15234
15505
  <td>
15235
- <code><autoref identifier="list" optional>list</autoref>[<autoref identifier="nautobot.core.models.BaseModel" optional hover>BaseModel</autoref>]</code>
15506
+ <code>app_models</code>
15507
+ </td>
15508
+ <td>
15509
+ <code>list[<a class="autorefs autorefs-internal" title="nautobot.core.models.BaseModel" href="#nautobot.apps.models.BaseModel">BaseModel</a>]</code>
15236
15510
  </td>
15237
15511
  <td>
15238
15512
  <div class="doc-md-description">
@@ -15244,9 +15518,11 @@ and return them grouped by app.</p>
15244
15518
  </td>
15245
15519
  </tr>
15246
15520
  <tr class="doc-section-item">
15247
- <td><code>field_names</code></td>
15248
15521
  <td>
15249
- <code><autoref identifier="list" optional>list</autoref>[<autoref identifier="str" optional>str</autoref>]</code>
15522
+ <code>field_names</code>
15523
+ </td>
15524
+ <td>
15525
+ <code>list[str]</code>
15250
15526
  </td>
15251
15527
  <td>
15252
15528
  <div class="doc-md-description">
@@ -15258,9 +15534,11 @@ and return them grouped by app.</p>
15258
15534
  </td>
15259
15535
  </tr>
15260
15536
  <tr class="doc-section-item">
15261
- <td><code>field_attributes</code></td>
15262
15537
  <td>
15263
- <code><autoref identifier="dict" optional>dict</autoref></code>
15538
+ <code>field_attributes</code>
15539
+ </td>
15540
+ <td>
15541
+ <code>dict</code>
15264
15542
  </td>
15265
15543
  <td>
15266
15544
  <div class="doc-md-description">
@@ -15272,9 +15550,11 @@ and return them grouped by app.</p>
15272
15550
  </td>
15273
15551
  </tr>
15274
15552
  <tr class="doc-section-item">
15275
- <td><code>additional_constraints</code></td>
15276
15553
  <td>
15277
- <code><autoref identifier="dict" optional>dict</autoref></code>
15554
+ <code>additional_constraints</code>
15555
+ </td>
15556
+ <td>
15557
+ <code>dict</code>
15278
15558
  </td>
15279
15559
  <td>
15280
15560
  <div class="doc-md-description">
@@ -15308,7 +15588,7 @@ and return them grouped by app.</p>
15308
15588
 
15309
15589
  <div class="doc doc-contents ">
15310
15590
 
15311
- <p>Get a list of all non-abstract models that inherit from the given base_class.</p>
15591
+ <p>Get a list of all non-abstract models that inherit from the given base_class.</p>
15312
15592
 
15313
15593
  </div>
15314
15594
 
@@ -15325,7 +15605,7 @@ and return them grouped by app.</p>
15325
15605
 
15326
15606
  <div class="doc doc-contents ">
15327
15607
 
15328
- <p>Return the Global namespace.</p>
15608
+ <p>Return the Global namespace.</p>
15329
15609
 
15330
15610
  </div>
15331
15611
 
@@ -15342,7 +15622,7 @@ and return them grouped by app.</p>
15342
15622
 
15343
15623
  <div class="doc doc-contents ">
15344
15624
 
15345
- <p>Return the PK of the Global namespace for use in default value for foreign keys.</p>
15625
+ <p>Return the PK of the Global namespace for use in default value for foreign keys.</p>
15346
15626
 
15347
15627
  </div>
15348
15628
 
@@ -15359,7 +15639,7 @@ and return them grouped by app.</p>
15359
15639
 
15360
15640
  <div class="doc doc-contents ">
15361
15641
 
15362
- <p>Return True if the instance can have Tags assigned to it; False otherwise.</p>
15642
+ <p>Return True if the instance can have Tags assigned to it; False otherwise.</p>
15363
15643
 
15364
15644
  </div>
15365
15645
 
@@ -15376,7 +15656,7 @@ and return them grouped by app.</p>
15376
15656
 
15377
15657
  <div class="doc doc-contents ">
15378
15658
 
15379
- <p>Take an alphanumeric string and prepend all integers to <code>integer_places</code> places to ensure the strings
15659
+ <p>Take an alphanumeric string and prepend all integers to <code>integer_places</code> places to ensure the strings
15380
15660
  are ordered naturally. For example:</p>
15381
15661
  <div class="highlight"><pre><span></span><code>location9router21
15382
15662
  location10router4
@@ -15406,7 +15686,7 @@ location00000010router00000019
15406
15686
 
15407
15687
  <div class="doc doc-contents ">
15408
15688
 
15409
- <p>Similar in nature to naturalize(), but takes into account a particular naming format adapted from the old
15689
+ <p>Similar in nature to naturalize(), but takes into account a particular naming format adapted from the old
15410
15690
  InterfaceManager.</p>
15411
15691
  <p>:param value: The value to be naturalized
15412
15692
  :param max_length: The maximum length of the returned string. Characters beyond this length will be stripped.</p>
@@ -15426,7 +15706,7 @@ InterfaceManager.</p>
15426
15706
 
15427
15707
  <div class="doc doc-contents ">
15428
15708
 
15429
- <p>Given a <code>Q</code> object, display it in a more human-readable format.</p>
15709
+ <p>Given a <code>Q</code> object, display it in a more human-readable format.</p>
15430
15710
 
15431
15711
 
15432
15712
  <p><span class="doc-section-title">Parameters:</span></p>
@@ -15441,9 +15721,11 @@ InterfaceManager.</p>
15441
15721
  </thead>
15442
15722
  <tbody>
15443
15723
  <tr class="doc-section-item">
15444
- <td><code>query</code></td>
15445
15724
  <td>
15446
- <code><autoref identifier="Q" optional>Q</autoref></code>
15725
+ <code>query</code>
15726
+ </td>
15727
+ <td>
15728
+ <code>Q</code>
15447
15729
  </td>
15448
15730
  <td>
15449
15731
  <div class="doc-md-description">
@@ -15469,7 +15751,7 @@ InterfaceManager.</p>
15469
15751
  <tbody>
15470
15752
  <tr class="doc-section-item">
15471
15753
  <td>
15472
- <code><autoref identifier="str" optional>str</autoref></code>
15754
+ <code>str</code>
15473
15755
  </td>
15474
15756
  <td>
15475
15757
  <div class="doc-md-description">
@@ -15515,7 +15797,7 @@ InterfaceManager.</p>
15515
15797
 
15516
15798
  <div class="doc doc-contents ">
15517
15799
 
15518
- <p>Return a generic JSON representation of an object using Django's built-in serializer. (This is used for things like
15800
+ <p>Return a generic JSON representation of an object using Django's built-in serializer. (This is used for things like
15519
15801
  change logging, not the REST API.) Optionally include a dictionary to supplement the object data. A list of keys
15520
15802
  can be provided to exclude them from the returned dictionary. Private fields (prefaced with an underscore) are
15521
15803
  implicitly excluded.</p>
@@ -15535,7 +15817,7 @@ implicitly excluded.</p>
15535
15817
 
15536
15818
  <div class="doc doc-contents ">
15537
15819
 
15538
- <p>Return a JSON serialized representation of an object using obj's serializer.</p>
15820
+ <p>Return a JSON serialized representation of an object using obj's serializer.</p>
15539
15821
 
15540
15822
  </div>
15541
15823
 
@@ -15552,7 +15834,7 @@ implicitly excluded.</p>
15552
15834
 
15553
15835
  <div class="doc doc-contents ">
15554
15836
 
15555
- <p>Custom slugify_function - use underscores instead of dashes; resulting slug can be used as a variable name,
15837
+ <p>Custom slugify_function - use underscores instead of dashes; resulting slug can be used as a variable name,
15556
15838
  as well as a graphql safe string.
15557
15839
  Note: If content starts with a non graphql-safe character, e.g. a digit
15558
15840
  This method will prepend an "a" to content to make it graphql-safe
@@ -15574,7 +15856,7 @@ e.g:
15574
15856
 
15575
15857
  <div class="doc doc-contents ">
15576
15858
 
15577
- <p>Custom slugify_function - convert '.' to '-' instead of removing dots outright.</p>
15859
+ <p>Custom slugify_function - convert '.' to '-' instead of removing dots outright.</p>
15578
15860
 
15579
15861
  </div>
15580
15862
 
@@ -15733,7 +16015,7 @@ e.g:
15733
16015
  <script id="__config" type="application/json">{"base": "../../..", "features": ["content.code.annotate", "content.code.copy", "content.tabs.link", "navigation.footer", "navigation.tabs", "navigation.tabs.sticky", "navigation.tracking", "search.highlight", "search.share", "search.suggest"], "search": "../../../assets/javascripts/workers/search.6ce7567c.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
15734
16016
 
15735
16017
 
15736
- <script src="../../../assets/javascripts/bundle.83f73b43.min.js"></script>
16018
+ <script src="../../../assets/javascripts/bundle.88dd0f4e.min.js"></script>
15737
16019
 
15738
16020
  <script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
15739
16021