diff --git a/docs/release-notes/version-2.9.md b/docs/release-notes/version-2.9.md index bfe8ede46..d9d5cb6e8 100644 --- a/docs/release-notes/version-2.9.md +++ b/docs/release-notes/version-2.9.md @@ -13,6 +13,7 @@ * [#5201](https://github.com/netbox-community/netbox/issues/5201) - Fix missing querystring when bulk editing/deleting VLAN Group VLANs when selecting "select all x items matching query" * [#5206](https://github.com/netbox-community/netbox/issues/5206) - Apply user pagination preferences to all paginated object lists * [#5217](https://github.com/netbox-community/netbox/issues/5217) - Prevent erroneous removal of prefetched GenericForeignKey data from tables +* [#5218](https://github.com/netbox-community/netbox/issues/5218) - Raise validation error if a power port's `allocated_draw` exceeds its `maximum_draw` --- diff --git a/netbox/dcim/models/device_components.py b/netbox/dcim/models/device_components.py index 18ca5cf3e..b1da7ceec 100644 --- a/netbox/dcim/models/device_components.py +++ b/netbox/dcim/models/device_components.py @@ -405,6 +405,14 @@ class PowerPort(CableTermination, ComponentModel): self.description, ) + def clean(self): + + if self.maximum_draw is not None and self.allocated_draw is not None: + if self.allocated_draw > self.maximum_draw: + raise ValidationError({ + 'allocated_draw': f"Allocated draw cannot exceed the maximum draw ({self.maximum_draw}W)." + }) + @property def connected_endpoint(self): """