Mat*_*son 6 python django google-app-engine
我正在使用带有django 1.0.2(和django-helper)的谷歌应用引擎,并想知道人们如何进行递归删除.假设你有一个类似这样的模型:
class Top(BaseModel):
pass
class Bottom(BaseModel):
daddy = db.ReferenceProperty(Top)
现在,当我删除"Top"类型的对象时,我希望删除所有关联的"Bottom"对象.
就像现在一样,当我删除'Top'对象时,'Bottom'对象保持不变,然后我得到的数据不属于任何地方.在视图中访问数据存储区时,我最终得到:
Caught an exception while rendering: ReferenceProperty failed to be resolved.
我当然可以找到所有对象并删除它们,但由于我的真实模型至少有5级深度,我希望有一种方法可以确保自动完成.
我发现这篇文章是关于它如何与Java一起工作的,这似乎也是我想要的.
任何人都知道如何在django中获得这种行为?
您需要手动实现此操作,方法是查找受影响的记录并在删除父记录的同时删除它们.如果您愿意,可以通过覆盖父类的.delete()方法来自动删除所有相关记录.
出于性能原因,您几乎肯定希望使用仅键查询(允许您删除实体的键,而无需获取和解码实际实体)和批量删除.例如:
db.delete(Bottom.all(keys_only=True).filter("daddy =", top).fetch(1000))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2118 次 |
| 最近记录: |