python - Django 数据库查询

标签 python sql database django

我在 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/

相关文章:

java - 用于 DB2 和 Oracle 数据源的 flexypool

python - 让 django-simple-captcha 工作

sql - 将三列合并为一列

mysql - HQL 如何处理没有小时、分钟、秒的星期几和日期的等于?

c# - 如何使用 SMO 创建本地数据库实例

mysql - 如何按另一个表中的值对值进行排序

python - 蚁群模拟——优化路径

python os.path.isfile() 对某些整数返回 True

python - 在 Python 中为字符串列表创建字典和整数键

c# - Entity Framework 6 代码优先触发器