Skip to content

Commit ca20ff6

Browse files
committed
Fixes #17810: Fix assignment of device to rack via REST API without specifying position/face
1 parent 24b7679 commit ca20ff6

File tree

2 files changed

+31
-0
lines changed

2 files changed

+31
-0
lines changed
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
from django.db import migrations, models
2+
3+
4+
class Migration(migrations.Migration):
5+
6+
dependencies = [
7+
('dcim', '0191_module_bay_rebuild'),
8+
('extras', '0121_customfield_related_object_filter'),
9+
('ipam', '0070_vlangroup_vlan_id_ranges'),
10+
('tenancy', '0015_contactassignment_rename_content_type'),
11+
('virtualization', '0040_convert_disk_size'),
12+
]
13+
14+
operations = [
15+
migrations.RemoveConstraint(
16+
model_name='device',
17+
name='dcim_device_unique_rack_position_face',
18+
),
19+
migrations.AddConstraint(
20+
model_name='device',
21+
constraint=models.UniqueConstraint(
22+
condition=models.Q(
23+
('position__isnull', False),
24+
('rack__isnull', False)
25+
),
26+
fields=('rack', 'position', 'face'),
27+
name='dcim_device_unique_rack_position_face'
28+
),
29+
),
30+
]

netbox/dcim/models/devices.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -798,6 +798,7 @@ class Meta:
798798
),
799799
models.UniqueConstraint(
800800
fields=('rack', 'position', 'face'),
801+
condition=Q(rack__isnull=False, position__isnull=False),
801802
name='%(app_label)s_%(class)s_unique_rack_position_face'
802803
),
803804
models.UniqueConstraint(

0 commit comments

Comments
 (0)