如何在Django中的数据库中存储具有复杂数据字段的python对象?
我有一个带有comlex数据结构的python类。它具有对象和普通数据的嵌套列表和目录如何在Django中的数据库中存储具有复杂数据字段的python对象?,python,django,serialization,Python,Django,Serialization,我有一个带有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=[]
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模型?我应该序列化对象吗
Upd建议的固定默认参数您可能需要查看
django picklefield提供了pickled对象字段的实现。此类字段可以包含任何可拾取的对象
基本上,这将获取任何Python对象,保存它的pickle表示,在将pickle表示直接从数据库中取出后,您可以将其重新创建为相同的对象
您可能希望创建一个模型对象NK_自动机,该自动机将这些属性中的每一个存储在pickle字段中,然后创建一个方法来重新创建包含所有属性的实际类对象。我不能向您保证整个类是可拾取的,但可能会将整个NK_Automata类实例存储在一个字段中。不是答案,但是您绝对不希望在方法定义中有这两个默认值:参见.Django的orm更像是一个数据库抽象层,而不是对象持久层。。