我在 Django 中有一个模型。它有一个组,组内有相机。
class Groups(models.Model):
groupName = models.CharField(max_length=255)
class Cameras(models.Model):
group = models.ForeignKey(Groups)
cameraID = models.IntegerField()
当我尝试移除模型中的一个或一组相机时。
camera = Cameras.objects.filter(cameraID=int(camID))
camera.delete()
它会删除 ID 大于 0 的任何摄像头。但是如果我的摄像头 ID 为“0”,它就无法删除。任何想法为什么会这样。
最佳答案
当您使用过滤器时,您可以返回 0 个或多个对象,不像 get
只会返回 1 个对象,否则会导致错误。
如果你想删除从过滤器返回的每个对象,你可以像这样迭代它:
cameras = Cameras.objects.filter(cameraID=int(camID))
## let's say this returns [<Camera:1>,<Camera:2>]
for camera in cameras:
camera.delete()
## this loop will delete each object in the query
关于python - Django 数据库查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9015837/