Added
- External Inventory items can be placed on a NetBox Region, Site or Location through the new
location_assigned_objectgeneric relation (location_assigned_object_type/
location_assigned_object_id), mirroringAsset.assigned_object. The free-textlocationand
location_codefields are unchanged and keep the raw value from the external system. The edit
form offers the target under "Location Assignment", the CSV import accepts
assigned_region_id/assigned_site_id/assigned_location_id, and the REST API and GraphQL
expose the two columns plus a nestedlocation_assigned_object(REST). - Region, Site and Location pages gain an "External Inventory" tab listing the items placed on the
object or anything below it (sub-regions, sites, locations and their descendants). - The External Inventory list, REST API and filter form accept
region_id,site_idand
location_id, with the same roll-up as the tabs, so "everything under this site" is one query.
Exact matches remain available throughlocation_assigned_object_typeand
location_assigned_object_id. external_location_idon External Inventory: the identifier of the item's location in the
external system, next to the free-textlocation_code/location. Available in the REST API,
GraphQL, the edit and CSV import forms, the list filter and the global search.
Fixed
- Migrating a fresh database no longer fails in
0001_initial_squashed: the data migration that
copied legacysite/location/devicecolumns intoAsset.assigned_objectlooked up dcim
content types that do not exist yet on a first install, which brokemanage.py testand any new
deployment. It now returns early when there is nothing to copy.