Parcourir la source

Fixes #301: Prevent deletion of DeviceBay when installed device is deleted

Jeremy Stretch il y a 9 ans
Parent
commit
f301af5ecd

+ 21 - 0
netbox/dcim/migrations/0010_devicebay_installed_device_set_null.py

@@ -0,0 +1,21 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.9.7 on 2016-07-14 21:38
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('dcim', '0009_site_32bit_asn_support'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='devicebay',
+            name='installed_device',
+            field=models.OneToOneField(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='parent_bay', to='dcim.Device'),
+        ),
+    ]

+ 2 - 1
netbox/dcim/models.py

@@ -953,7 +953,8 @@ class DeviceBay(models.Model):
     """
     device = models.ForeignKey('Device', related_name='device_bays', on_delete=models.CASCADE)
     name = models.CharField(max_length=50, verbose_name='Name')
-    installed_device = models.OneToOneField('Device', related_name='parent_bay', blank=True, null=True)
+    installed_device = models.OneToOneField('Device', related_name='parent_bay', on_delete=models.SET_NULL, blank=True,
+                                            null=True)
 
     class Meta:
         ordering = ['device', 'name']