问题描述
我的模型。py
camera_choices = (
('0','Entry'),('1','Exit'),)
class Device(models.Model):
DeviceId = models.AutoField(primary_key=True,db_column='DeviceId')
DeviceName = models.CharField(max_length=50,null=True,default=None,blank=True)
DeviceCode = models.CharField(max_length=25,null=False,blank=False)
IpAddress = models.CharField(max_length=15,blank=True)
Description = models.CharField(max_length=250,blank=True)
DefaultAccess = models.BooleanField(default=True,blank=True)
EntryCamera = models.ForeignKey(Camera,on_delete=models.CASCADE,db_column='EntryCameraId',related_name="entry_camera",blank=True,default=None)
ExitCamera = models.ForeignKey(Camera,db_column='ExitCameraId',related_name="exit_camera",default=None)
DeviceType = models.ForeignKey(DeviceType,db_column='DeviceTypeId')
DeviceStatus = models.SmallIntegerField(default=1,blank=True)
class Meta:
db_table = "Device"
class Camera(models.Model):
CameraId = models.AutoField(primary_key=True,db_column='CameraId')
CameraName = models.CharField(max_length=50,unique=True)
CameraUrl = models.URLField()
CameraType = models.CharField(max_length=30,choices=camera_choices)
class Meta:
db_table = "Camera"
我的serialiser.py
class DeviceListSerializer(serializers.ModelSerializer):
class Meta:
model = Device
fields = ['DeviceId','DeviceCode','DeviceName','IpAddress','Description','DefaultAccess','DeviceStatus','DeviceType','EntryCamera','ExitCamera']
depth = 1
我的views.py
def device_list(request):
try:
device = Device.objects.all()
serializer = DeviceListSerializer(device,many=True,read_only=True)
return Response(serializer.data,status=status.HTTP_200_OK)
except Exception as ex:
logging.getLogger("error_logger").exception(repr(ex))
我得到了答复
[
{
"DeviceId": 3,"DeviceCode": "DevTest3","DeviceName": "","IpAddress": "","Description": "","DefaultAccess": false,"DeviceStatus": 1,"DeviceType": {
"DeviceTypeId": 1,"DeviceType": "Devicetype1","DeviceTypeStatus": true
},"EntryCamera": {
"CameraId": 1,"CameraName": "Camera1","CameraUrl": "http://www.dgdge","CameraType": "0"
},"ExitCamera": {
"CameraId": 2,"CameraName": "Camera2","CameraUrl": "http://www.hth","CameraType": "1"
}
}
]
是否有可能获得如下所示的输出。在设备模型2中是指具有相同模型的外键的字段。有可能把他们聚在一起吗?
[
{
"DeviceId": 3,"Cameras":[
{
"CameraId": 1,{
"CameraId": 2,"CameraType": "1"
}]
}
]
我还如何获取未在设备型号中使用的摄像机列表(分别进入和退出)。 ?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)