问题描述
我想获取与其他模型相对应的模型详细信息
我的模型。py
class Device(models.Model):
DeviceName = models.CharField(max_length=50,null=True,default=None,blank=True)
Camera = models.ForeignKey(Camera,on_delete=models.CASCADE,db_column='CameraId')
class Meta:
db_table = "Device"
class Camera(models.Model):
CameraId = models.AutoField(primary_key=True,db_column='CameraId')
CameraName = models.CharField(max_length=50)
class Meta:
db_table = "Camera"
我想要我的相机详细信息
即未保存在设备外键中的摄像机详细信息(表示未使用设备外键的摄像机详细信息)
解决方法
尝试使用 device__isnull=True
过滤器(参考:Django isnull
查找)
camera_without_devices = Camera.objects.filter(device__isnull=True)
,
您可以检查相关模型(此处为Camera
)为device
/ None
的{{1}}个对象:
NULL
这很麻烦,因为Django将创建一个Camera.objects.filter(device=None)
,因此如果没有设备存在,它将为LEFT OUTER JOIN
的相关列添加一个带有NULL
的行。