Django 模型比较 2 个模型和过滤器
Django Models compare 2 model and filter
我想获取对应其他型号的型号详情
我的models.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)
您可以检查相关模型(此处 device
)为 None
/NULL
:
的 Camera
个对象
Camera.objects.filter(<b>device=None</b>)
这很有效,因为 Django 会创建一个 LEFT OUTER JOIN
,所以如果没有设备,它会添加一行 NULL
作为与 [=16= 相关的列的值].
我想获取对应其他型号的型号详情
我的models.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)
您可以检查相关模型(此处 device
)为 None
/NULL
:
Camera
个对象
Camera.objects.filter(<b>device=None</b>)
这很有效,因为 Django 会创建一个 LEFT OUTER JOIN
,所以如果没有设备,它会添加一行 NULL
作为与 [=16= 相关的列的值].