gpt4 book ai didi

python - 如何从 db.ListProperty 中删除项目?

转载 作者:行者123 更新时间:2023-11-28 23:04:43 24 4
gpt4 key购买 nike

在 Google App Engine 解决方案 (Python) 中,我使用 db.ListProperty 来描述多对多关系,如下所示:

class Department(db.Model):
name = db.StringProperty()

@property
def employees(self):
return Employee.all().filter('departments', self.key())

class Employee(db.Model):
name = db.StringProperty()
departments = db.ListProperty(db.Key)

我通过简单地将 Department 键附加到 db.ListProperty 来创建多对多关系,如下所示:

employee.departments.append(department.key())

问题是当不再需要这种关系时,我不知道如何真正删除它。

我试过谷歌搜索,但我似乎找不到任何详细描述 db.ListProperty 的文档。

有什么想法或引用吗?

最佳答案

ListProperty 只是一个 Python list,带有一些辅助方法以使其与 GAE 一起工作,因此适用于 list 的任何内容都适用到 ListProperty

employee.departments.remove(department.key())
employee.put()

请记住,每次进行更改时都必须对数据进行反序列化/重新序列化,因此如果您在添加或删除单个值时寻求速度,您可能需要使用另一种对关系建模的方法,如this page关系模型部分.

ListProperty 方法有时也有缺点 producing very large indexes如果您想在数据存储区请求中搜索列表。这对您来说可能不是问题,因为您的列表应该相对较小,但在未来的项目中需要牢记这一点。

关于python - 如何从 db.ListProperty 中删除项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7370488/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com