2009-05-26 51 views
0

设置最大递归深度我对谷歌的App Engine创建一个Django模型,而序列化与外键的Django模型,以JSON

Model A(): 
    propA = ReferenceProperty(B) 

Model B(): 
    propB = ReferenceProperty(C) 

Model C(): 
    propC = ReferenceProperty(B) 

我已经写了自定义Django的序列化,这将用于的ReferenceProperty获取数据(s)并沿着初始模型序列化。

当我尝试序列化型号A的实例时,会出现此问题。我的自定义序列将努力让propA,它包含模型C参考这样的序列化器将获取C型,它包含模型B参考和递归的推移和。有没有什么办法可以在深度说2后停止递归?

我的串行是link text

P.S的定制版本:我愿意出版我的代码,如果这似乎是必要的。由于我不在我的开发机器上,因此我目前还没有附加代码。

谢谢,
Arun Shanker Prasad。

回答

0

为什么你不正确地递归?任何递归操作必须有一个base case,否则它会一直持续下去,正如问题所示。

2

只需修改您的函数以采取“深度”参数。任何时候你关注一个ReferenceProperty,调用深度小于传入的深度的函数。如果函数调用的深度为== 0,则返回None,或者其他任何占位符值适合您的情况。

0

我试图找到一个与Google App Engine一起使用并遵循关系的序列化程序。您是否可以发布修改后的代码?