2012-09-08 19 views
1

我想使用Django Tastypie允许一个实现者POST/PUT数据来创建深层次相关的模型。因此,POST这样的事情(如JSON)创建,让我们把它叫做斑点,其中有许多FOOS,各自有许多酒吧(两种型号以及):Django Tastypie创建模型几个关系深

{"foos":[ 
    {"bars":[ 
     {"baz":"boo"} 
    ]} 
]} 

模型关系都在为我设置models.py和resources.py脚本,以便Blob有很多Foos和Foos有很多条。问题是,在这样做的时候,Tastypie似乎只用了obj_create做了一个深层次的相关字段,所以Bars永远不会被创建,并且如果该字段是必需的或者没有任何东西被存储,它就会返回一个错误,吨。我如何着手让Tastypie遍历关卡?作为一个便笺,我知道我可以使用单独的Bar端点首先创建那些端点,然后使用给定的Foo传递资源URI。但是为了争辩,让我们说这是不可能的,我需要将代表Blob的整个数据作为单个POST。

回答

0

我猜Tastypie不支持这种开箱即用的关系。这可能是因为你经常不需要这么深的嵌套。

你可以让他们在模型中,但如果你想以这种方式公开它,那么如何让资源是平坦的。鉴于您可以使用相关模型的属性,例如some_field = fields.CharField(attribute = 'relatedmodel__field')和那些我相信会被保存。

这样你的API更好,你仍然得到你所需要的。