我有一个带有comlex数据结构的python类。它具有嵌套的对象和普通数据的列表和单词。
class NK_Automata(object):
def __init__(self,p_N=5,p_K=5,p_functionsList=None,p_linksList=None):
self.N=p_N
self.K=p_K
if p_functionsList==None:
p_functionsList=[]
else:
self.functionsList= p_functionsList #list of BinFunction objects
if p_linksList==None:
self.linksList=[]
else:
self.linksList=p_linksList #list of lists of integers
self.ordinalNumber=-1
self.stateSpan={} #stateSpan: {currentStateNumber: nextStateNumber,...}
self.stateList=[] #list of integers
self.attractorDict={} #attractorDict: {attractorNumber:[size,basinSize],...}
self.attractorStatesDict ={} #attractorStatesDict: {attractorStateNumber:[nextAttractorStateNumber,attractorStateWeight],...}
我应该如何将其存储在数据库(sqlite3)中?如何为这个对象制作Django模型?我应该序列化对象吗?
更新修正了建议的默认参数
答案 0 :(得分:2)
您可能需要查看django-picklefield。
django-picklefield提供了一个pickle对象字段的实现。这些字段可以包含任何可选对象。
基本上,这将采用任何Python对象,保存它的pickle表示,并且在将pickle表示从数据库中拉出后,您可以将其重新创建为相同的对象。
您可能想要创建一个模型对象NK_Automata,它将每个属性存储在picklefield中,然后创建一个方法来重新创建具有所有属性的实际类对象。我无法向你保证全班可以选择,但是可以将整个NK_Automata类实例存储在一个字段中。