Django Tastypie创造了几个关系深厚的模型

时间:2012-09-08 05:21:20

标签: django api orm tastypie

我正在尝试使用Django Tastypie来允许实现者POST / PUT数据来创建与几个级别相关的模型。所以POST这样的东西(作为JSON)来创建让我们称它为Blob,它有许多Foos,每个都有很多Bar(两个模型都是):

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

模型关系都在我的models.py和resources.py脚本中设置,因此Blob有很多Foos和Foos有很多Bars。问题在于,在执行此操作时,Tastypie似乎只是在obj_create执行相关字段时才进入单层深度,因此Bars永远不会被创建,并且如果该字段是必需的,则会返回错误,或者如果它不是存储则不会存储任何内容。吨。我如何让Tastypie在整个关卡中穿越?

作为旁注,我知道我可以使用单独的Bar端点来创建它们,然后使用给定的Foo传入资源URI。但是为了论证,让我们说这是不可能的,我需要将表示Blob的整个数据作为单个POST。

1 个答案:

答案 0 :(得分:0)

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

你可以在一个模型中使用它们,但是如果你想以这种方式公开它,那么如何拥有一个平坦的资源呢。鉴于您可以使用相关模型的属性,例如some_field = fields.CharField( attribute = 'relatedmodel__field' )和我认为会得救的人。

这样你的API就更好了,你仍然能得到你需要的东西。