【问题标题】:Django Tastypie creating models several relations deepDjango Tastypie 创建模型的几个关系很深
【发布时间】:2012-09-01 22:27:48
【问题描述】:

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

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

模型关系都是在我的models.py和resources.py脚本中设置的,所以Blobs有很多Foos,Foos有很多Bars。问题是,在这样做时,Tastypie 似乎只在 obj_create 执行相关字段的情况下深入了一个级别,因此永远不会创建 Bars,如果该字段是必需的,它会返回一个错误,或者如果不是,则不会存储任何内容。吨。如何让 Tastypie 向下遍历关卡?

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

【问题讨论】:

    标签: django api orm tastypie


    【解决方案1】:

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

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

    这样你的 API 会更好,你仍然可以得到你需要的东西。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-06
      相关资源
      最近更新 更多