django models and OOP design
You should put the methods of the Quest class on the model itself and get rid of the Quest class.
I wrote a quest system for an online game. My quests are serialized into json objects for a JavaScript client that fetches those quests then from a REST backend (I use django RestFramework)
Now I'm wondering on which class or django model I should put the "behaviour" that belongs to the data.
I stored the data that belongs to a quest in several separate models:
A model QuestHistory: with models.Fields like Boolean completed, and Datetime started where I put the information belonging to a specific user (it also as a field user).
Then I have a model QuestTemplate : The part that is always the same, fields like quest_title and  quest_description 
I also have a model Rewards and model Task and TaskHistory that are linked to a quest with a foreign Key field. 
To combine this information back to quest I created a pure python class Quest(object): and defined methods on this class like check_quest_completion. This class is the then later serialized. The Problem with this approach is that It becomes quite verbose, for example when I instantiate this class or when I define the Serializer. 
Is there a python or django "shortcut" to put all fields of a django model into another class (my Quest class here), something similar to the dict.update method maybe? 
Or should I try to put the methods on the models instead and get rid of the Quest class? 
I have some other places in my game that look very similar to the quest system for example the inventory system so I'm hoping for a more elegant solution.