Here I'm trying to create 4 Foriegn Keys of DeviceException Table in DeviceControlPolicy Table for individual Device.
This DeviceException table will consist 4 Type of Device Exceptions and i am creating individual Columns as foriegn key in the DeviceControlPolicy Table for the each Device, just to make it easy. [if any suggestion please let me know how can i use this] and how can i solve this error
DeviceControlPolicy.py
from django.db import models
from .src.models.Vendor import Vendor
from .src.models.DeviceException import DeviceException
class DeviceControlPolicy(models.Model):
vendor_id = models.ForeignKey(Vendor, on_delete=models.CASCADE)
id = models.IntegerField(primary_key=True)
name = models.CharField(max_length=100)
description = models.CharField(max_length=1000)
usb_storage_device = models.CharField(max_length=10, default="allow")
usb_storage_except = models.ForeignKey(DeviceException, on_delete=models.CASCADE)
cd_dvd = models.CharField(max_length=10, default="allow")
portable = models.CharField(max_length=10, default="allow")
portable_except = models.ForeignKey(DeviceException, on_delete=models.CASCADE)
wifi = models.CharField(max_length=10, default="allow")
bluetooth = models.CharField(max_length=10, default="allow")
webcam = models.CharField(max_length=10, default="allow")
webcam_except = models.ForeignKey(DeviceException, on_delete=models.CASCADE)
serial_port = models.CharField(max_length=10, default="allow")
serial_port_except = models.ForeignKey(DeviceException, on_delete=models.CASCADE)
usb_port = models.CharField(max_length=10, default="allow")
local_printer = models.CharField(max_length=10, default="allow")
network_share = models.CharField(max_length=10, default="allow")
card_reader = models.CharField(max_length=10, default="allow")
unknown_device = models.CharField(max_length=10, default="allow")
def __str__(self):
return self.name
DeviceException.py
from django.db import models
from .src.models.Vendor import Vendor
from .src.models.DeviceClassification import DeviceClassification
class DeviceException(models.Model):
vendor_id = models.ForeignKey(Vendor, on_delete=models.CASCADE)
id = models.IntegerField(primary_key=True)
name = models.CharField(max_length=100)
description = models.CharField(max_length=1000)
classification = models.ForeignKey(DeviceClassification, on_delete=models.DO_NOTHING)
exception_type = models.CharField(max_length=50)
action = models.CharField(default="allow", max_length=10)
def __str__(self):
return self.name
Error I'm Facing:
ERRORS: DeviceControlPolicy.portable_except: (fields.E304) Reverse accessor for 'DeviceControlPolicy.portable_except' clashes with reverse accessor for 'DeviceControlPolicy.usb_storage_except'. HINT: Add or change a related_name argument to the definition for 'DeviceControlPolicy.portable_except' or 'DeviceControlPolicy.usb_storage_except'. DeviceControlPolicy.usb_storage_except: (fields.E304) Reverse accessor for 'DeviceControlPolicy.usb_storage_except' clashes with reverse accessor for 'DeviceControlPolicy.portable_except'. HINT: Add or change a related_name argument to the definition for 'DeviceControlPolicy.usb_storage_except' or 'DeviceControlPolicy.portable_except'.