我写了一个在线游戏的任务系统。我的任务被序列化为json objects
,用于JavaScript客户端,然后从REST后端获取这些任务(我使用django RestFramework)
现在我想知道class
或django model
我应该采用"行为"属于数据。
我在几个单独的模型中存储了属于任务的数据:
model QuestHistory
:models.Fields
Boolean completed
和Datetime started
,我将信息属于特定用户(也是字段用户)。
然后我有model QuestTemplate
:始终相同的部分,quest_title
和quest_description
等字段
我还有model Rewards
和model Task and TaskHistory
与foreign Key field
的任务相关联。
要将此信息组合回任务,我创建了一个纯python class Quest(object):
,并在此类上定义了类似check_quest_completion
的方法。这个类后来被序列化了。这种方法的问题在于它变得非常冗长,例如当我实例化这个类或我定义Serializer时。
是否有python或django"快捷方式"将django model
的所有字段放入另一个类(我的Quest类),可能类似于dict.update
方法?
或者我应该尝试将方法放在models
上并摆脱Quest class
?
我的游戏中有一些其他地方看起来非常类似于任务系统,例如库存系统,所以我希望有一个更优雅的解决方案。
答案 0 :(得分:0)
您应该将Quest类的方法放在模型本身上并删除Quest类。