从渲染器访问基础模型

时间:2016-04-16 10:57:09

标签: python django svg django-rest-framework

目前,只使用简单的DRF,我能够非常轻松地将我的模型渲染为JSON。这很简单(使用JSONRenderer),因为从Serializer生成的dicts生成JSON是微不足道的。

现在我希望能够将我的模型渲染为SVG,但我还是很困难。我需要比datarender() BaseRenderer参数中的Renderer参数更深入地检查我的模型。

总而言之,我需要检索基础模型并从ViewSet

访问ORM

我想我可以这样做:

  • 从传递给context['view']的{​​{1}}检索render()
  • Serializer
  • 中检索ViewSet
  • 通过data反序列化模型Serializer
  • 使用ORM生成正确的SVG。

对于这样一个简单的用例,这似乎非常折磨。

还有其他方法可以访问ORM并为模型渲染SVG吗?也许我只是没有按正确的顺序使用正确的工具?

示例:

假设我有两个简单的模型:CarWheelWheel包含其Car的外键。 现在,当我序列化Car时,我会有以下内容:

{
    "url": "http://myserver/cars/1",
    "type": "limo",
    "wheels": ["http://myserver/wheels/1", "http://myserver/wheels/2", "http://myserver/wheels/3", "http://myserver/wheels/4"]
}

在处理JSON数据时,这一切都很棒,我希望客户端如果想要了解有关它们的更多信息,可以向轮子发出查询。 但是当我查询汽车来渲染SVG时,我需要用它的轮子绘制它!所以我需要从我的SVGRenderer访问ORM并从轮子中检索信息:哪种颜色?哪种类型?等

0 个答案:

没有答案