mirror of
https://github.com/netbox-community/netbox.git
synced 2025-08-08 08:38:16 -06:00
Adjust uniqueness constraints
This commit is contained in:
parent
6144409058
commit
e583ffa3e4
@ -1,47 +0,0 @@
|
|||||||
# Generated by Django 5.0.7 on 2024-07-23 10:12
|
|
||||||
|
|
||||||
import django.db.models.deletion
|
|
||||||
from django.db import migrations, models
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
|
||||||
|
|
||||||
dependencies = [
|
|
||||||
('dcim', '0189_moduletype_airflow_rack_airflow_racktype_airflow'),
|
|
||||||
]
|
|
||||||
|
|
||||||
operations = [
|
|
||||||
migrations.AddField(
|
|
||||||
model_name='modulebay',
|
|
||||||
name='module',
|
|
||||||
field=models.ForeignKey(
|
|
||||||
blank=True,
|
|
||||||
null=True,
|
|
||||||
on_delete=django.db.models.deletion.CASCADE,
|
|
||||||
related_name='%(class)ss',
|
|
||||||
to='dcim.module',
|
|
||||||
),
|
|
||||||
),
|
|
||||||
migrations.AddField(
|
|
||||||
model_name='modulebaytemplate',
|
|
||||||
name='module_type',
|
|
||||||
field=models.ForeignKey(
|
|
||||||
blank=True,
|
|
||||||
null=True,
|
|
||||||
on_delete=django.db.models.deletion.CASCADE,
|
|
||||||
related_name='%(class)ss',
|
|
||||||
to='dcim.moduletype',
|
|
||||||
),
|
|
||||||
),
|
|
||||||
migrations.AlterField(
|
|
||||||
model_name='modulebaytemplate',
|
|
||||||
name='device_type',
|
|
||||||
field=models.ForeignKey(
|
|
||||||
blank=True,
|
|
||||||
null=True,
|
|
||||||
on_delete=django.db.models.deletion.CASCADE,
|
|
||||||
related_name='%(class)ss',
|
|
||||||
to='dcim.devicetype',
|
|
||||||
),
|
|
||||||
),
|
|
||||||
]
|
|
44
netbox/dcim/migrations/0190_nested_modules.py
Normal file
44
netbox/dcim/migrations/0190_nested_modules.py
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
import django.db.models.deletion
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('dcim', '0189_moduletype_airflow_rack_airflow_racktype_airflow'),
|
||||||
|
('extras', '0119_eventrule_event_types'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AlterModelOptions(
|
||||||
|
name='modulebaytemplate',
|
||||||
|
options={'ordering': ('device_type', 'module_type', '_name')},
|
||||||
|
),
|
||||||
|
migrations.RemoveConstraint(
|
||||||
|
model_name='modulebay',
|
||||||
|
name='dcim_modulebay_unique_device_name',
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='modulebay',
|
||||||
|
name='module',
|
||||||
|
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='%(class)ss', to='dcim.module'),
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='modulebaytemplate',
|
||||||
|
name='module_type',
|
||||||
|
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='%(class)ss', to='dcim.moduletype'),
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='modulebaytemplate',
|
||||||
|
name='device_type',
|
||||||
|
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='%(class)ss', to='dcim.devicetype'),
|
||||||
|
),
|
||||||
|
migrations.AddConstraint(
|
||||||
|
model_name='modulebay',
|
||||||
|
constraint=models.UniqueConstraint(fields=('device', 'module', 'name'), name='dcim_modulebay_unique_device_module_name'),
|
||||||
|
),
|
||||||
|
migrations.AddConstraint(
|
||||||
|
model_name='modulebaytemplate',
|
||||||
|
constraint=models.UniqueConstraint(fields=('module_type', 'name'), name='dcim_modulebaytemplate_unique_module_type_name'),
|
||||||
|
),
|
||||||
|
]
|
@ -668,7 +668,7 @@ class ModuleBayTemplate(ModularComponentTemplateModel):
|
|||||||
|
|
||||||
component_model = ModuleBay
|
component_model = ModuleBay
|
||||||
|
|
||||||
class Meta(ComponentTemplateModel.Meta):
|
class Meta(ModularComponentTemplateModel.Meta):
|
||||||
verbose_name = _('module bay template')
|
verbose_name = _('module bay template')
|
||||||
verbose_name_plural = _('module bay templates')
|
verbose_name_plural = _('module bay templates')
|
||||||
|
|
||||||
|
@ -1100,7 +1100,13 @@ class ModuleBay(ModularComponentModel, TrackingModelMixin):
|
|||||||
|
|
||||||
clone_fields = ('device',)
|
clone_fields = ('device',)
|
||||||
|
|
||||||
class Meta(ComponentModel.Meta):
|
class Meta(ModularComponentModel.Meta):
|
||||||
|
constraints = (
|
||||||
|
models.UniqueConstraint(
|
||||||
|
fields=('device', 'module', 'name'),
|
||||||
|
name='%(app_label)s_%(class)s_unique_device_module_name'
|
||||||
|
),
|
||||||
|
)
|
||||||
verbose_name = _('module bay')
|
verbose_name = _('module bay')
|
||||||
verbose_name_plural = _('module bays')
|
verbose_name_plural = _('module bays')
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user