Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Django中的数据库中存储具有复杂数据字段的python对象?_Python_Django_Serialization - Fatal编程技术网

如何在Django中的数据库中存储具有复杂数据字段的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=[]

我有一个带有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模型?我应该序列化对象吗

Upd建议的固定默认参数

您可能需要查看

django picklefield提供了pickled对象字段的实现。此类字段可以包含任何可拾取的对象

基本上,这将获取任何Python对象,保存它的pickle表示,在将pickle表示直接从数据库中取出后,您可以将其重新创建为相同的对象


您可能希望创建一个模型对象NK_自动机,该自动机将这些属性中的每一个存储在pickle字段中,然后创建一个方法来重新创建包含所有属性的实际类对象。我不能向您保证整个类是可拾取的,但可能会将整个NK_Automata类实例存储在一个字段中。

不是答案,但是您绝对不希望在方法定义中有这两个默认值:参见.Django的orm更像是一个数据库抽象层,而不是对象持久层。。