【发布时间】:2014-07-23 13:01:11
【问题描述】:
我正在使用 JavaScript 客户端编写在线游戏,我使用 Django REST framework 作为后端。我已经为它写了一个任务系统。
我的任务对象是从django model QuestTemplate 动态创建的,该django model QuestTemplate 存储诸如任务描述和标题(每个用户都相同的部分)等信息;还有另一个model QuestHistory,我在其中放置了有关某个用户的请求状态的信息:因此它具有user 和completed 之类的字段。它们还有一些嵌套对象:任务和奖励,它们的创建方式与 Quest 对象类似。
我添加了一个纯python类Quest,它结合了这些模型的所有字段,然后我为这个类编写了一个Serializer。缺点是我必须在QuestSerializer中重新定义所有字段
我已经看到,对于 ModelSerializer,您可以使用 inner class Meta 指定型号和 .还有一种方法可以使用普通的 python 类而不是模型(使用我的 Quest 类)来做到这一点。
http://www.django-rest-framework.org/api-guide/serializers#specifying-nested-serialization
或者:
是否可以在这个内部类中指定多个模型,以便它从我的model QuestTemplate 中获取字段,并从我的model QuestHistory 中获取一些其他字段?
(我也不确定这种结构是否有意义,并在这里询问:django models and OOP design)
【问题讨论】:
标签: python django django-rest-framework