mirror of
https://github.com/netbox-community/netbox.git
synced 2025-07-14 01:41:22 -06:00
This commit is contained in:
parent
ce12de8b6d
commit
a1cd81ff35
@ -10,11 +10,11 @@ The assignment of platforms to devices is an optional feature, and may be disreg
|
|||||||
|
|
||||||
### Name
|
### Name
|
||||||
|
|
||||||
A unique human-friendly name.
|
A human-friendly name for the platform. Must be unique per manufacturer.
|
||||||
|
|
||||||
### Slug
|
### Slug
|
||||||
|
|
||||||
A unique URL-friendly identifier. (This value can be used for filtering.)
|
A URL-friendly identifier; must be unique per manufacturer. (This value can be used for filtering.)
|
||||||
|
|
||||||
### Manufacturer
|
### Manufacturer
|
||||||
|
|
||||||
|
@ -0,0 +1,54 @@
|
|||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('dcim', '0207_remove_redundant_indexes'),
|
||||||
|
('extras', '0129_fix_script_paths'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='platform',
|
||||||
|
name='name',
|
||||||
|
field=models.CharField(max_length=100),
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='platform',
|
||||||
|
name='slug',
|
||||||
|
field=models.SlugField(max_length=100),
|
||||||
|
),
|
||||||
|
migrations.AddConstraint(
|
||||||
|
model_name='platform',
|
||||||
|
constraint=models.UniqueConstraint(
|
||||||
|
fields=('manufacturer', 'name'),
|
||||||
|
name='dcim_platform_manufacturer_name'
|
||||||
|
),
|
||||||
|
),
|
||||||
|
migrations.AddConstraint(
|
||||||
|
model_name='platform',
|
||||||
|
constraint=models.UniqueConstraint(
|
||||||
|
condition=models.Q(('manufacturer__isnull', True)),
|
||||||
|
fields=('name',),
|
||||||
|
name='dcim_platform_name',
|
||||||
|
violation_error_message='Platform name must be unique.'
|
||||||
|
),
|
||||||
|
),
|
||||||
|
migrations.AddConstraint(
|
||||||
|
model_name='platform',
|
||||||
|
constraint=models.UniqueConstraint(
|
||||||
|
fields=('manufacturer', 'slug'),
|
||||||
|
name='dcim_platform_manufacturer_slug'
|
||||||
|
),
|
||||||
|
),
|
||||||
|
migrations.AddConstraint(
|
||||||
|
model_name='platform',
|
||||||
|
constraint=models.UniqueConstraint(
|
||||||
|
condition=models.Q(('manufacturer__isnull', True)),
|
||||||
|
fields=('slug',),
|
||||||
|
name='dcim_platform_slug',
|
||||||
|
violation_error_message='Platform slug must be unique.'
|
||||||
|
),
|
||||||
|
),
|
||||||
|
]
|
@ -415,6 +415,15 @@ class Platform(OrganizationalModel):
|
|||||||
null=True,
|
null=True,
|
||||||
help_text=_('Optionally limit this platform to devices of a certain manufacturer')
|
help_text=_('Optionally limit this platform to devices of a certain manufacturer')
|
||||||
)
|
)
|
||||||
|
# Override name & slug from OrganizationalModel to not enforce uniqueness
|
||||||
|
name = models.CharField(
|
||||||
|
verbose_name=_('name'),
|
||||||
|
max_length=100
|
||||||
|
)
|
||||||
|
slug = models.SlugField(
|
||||||
|
verbose_name=_('slug'),
|
||||||
|
max_length=100
|
||||||
|
)
|
||||||
config_template = models.ForeignKey(
|
config_template = models.ForeignKey(
|
||||||
to='extras.ConfigTemplate',
|
to='extras.ConfigTemplate',
|
||||||
on_delete=models.PROTECT,
|
on_delete=models.PROTECT,
|
||||||
@ -427,6 +436,28 @@ class Platform(OrganizationalModel):
|
|||||||
ordering = ('name',)
|
ordering = ('name',)
|
||||||
verbose_name = _('platform')
|
verbose_name = _('platform')
|
||||||
verbose_name_plural = _('platforms')
|
verbose_name_plural = _('platforms')
|
||||||
|
constraints = (
|
||||||
|
models.UniqueConstraint(
|
||||||
|
fields=('manufacturer', 'name'),
|
||||||
|
name='%(app_label)s_%(class)s_manufacturer_name',
|
||||||
|
),
|
||||||
|
models.UniqueConstraint(
|
||||||
|
fields=('name',),
|
||||||
|
name='%(app_label)s_%(class)s_name',
|
||||||
|
condition=Q(manufacturer__isnull=True),
|
||||||
|
violation_error_message=_("Platform name must be unique.")
|
||||||
|
),
|
||||||
|
models.UniqueConstraint(
|
||||||
|
fields=('manufacturer', 'slug'),
|
||||||
|
name='%(app_label)s_%(class)s_manufacturer_slug',
|
||||||
|
),
|
||||||
|
models.UniqueConstraint(
|
||||||
|
fields=('slug',),
|
||||||
|
name='%(app_label)s_%(class)s_slug',
|
||||||
|
condition=Q(manufacturer__isnull=True),
|
||||||
|
violation_error_message=_("Platform slug must be unique.")
|
||||||
|
),
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
class Device(
|
class Device(
|
||||||
|
Loading…
Reference in New Issue
Block a user