Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.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
Python 如何插入反序列化的django对象?_Python_Django_Serialization_Django Models - Fatal编程技术网

Python 如何插入反序列化的django对象?

Python 如何插入反序列化的django对象?,python,django,serialization,django-models,Python,Django,Serialization,Django Models,我想在django服务器“A”上导入来自另一个django服务器“B”的一些对象 为此,我在服务器“B”上执行以下操作: python manage.py dumpdata--format=xml 然后我得到了我想要的xml部分,并在服务器“A”上尝试反序列化一个对象: 下面是我在python shell上所做的工作: data="""<object pk="69" model="inventory.cinodeserver"> <field type="Cha

我想在django服务器“A”上导入来自另一个django服务器“B”的一些对象

为此,我在服务器“B”上执行以下操作: python manage.py dumpdata--format=xml

然后我得到了我想要的xml部分,并在服务器“A”上尝试反序列化一个对象: 下面是我在python shell上所做的工作:

data="""<object pk="69" model="inventory.cinodeserver">
        <field type="CharField" name="server_name">rfrsmh81</field>
        <field type="CharField" name="server_type">Sun Fire V440</field>
        <field type="CharField" name="server_serial">0449AL2A3A</field>
        <field type="CharField" name="server_os">SunOS 5.8 HW 2/04</field>
        <field type="CharField" name="server_fw">4.18.10</field>
    </object>
"""
l=list(serializers.deserialize("xml", data))
o=l[0]
print o

<DeserializedObject: inventory.CINodeServer(pk=69)>
我得到:

IntegrityError: (1048, "Column 'cinodecompany_ptr_id' cannot be null")

Note, the model is :

class CINodeServer(CINodeCompany):
    class Meta: 
        app_label = 'inventory'

    server_name = models.CharField(max_length=64,blank=True)
    server_type = models.CharField(max_length=64,blank=True)
    server_serial = models.CharField(max_length=64,blank=True)
    server_os = models.CharField(max_length=30,blank=True)
    server_fw = models.CharField(max_length=20,blank=True)

那么,如何将导入的对象添加到SQL表的末尾?

您的模型缺少错误中所述的“cinodecompany\u ptr\u id”属性:

IntegrityError:(1048,“cinodecompany\u ptr\u id”列不能为空)

查看模型的数据库表以查看该列的定义

您发布的型号代码不完整。它继承自您未包含的CINodeCompany。缺少的字段可能是在父类中定义的

IntegrityError: (1048, "Column 'cinodecompany_ptr_id' cannot be null")

Note, the model is :

class CINodeServer(CINodeCompany):
    class Meta: 
        app_label = 'inventory'

    server_name = models.CharField(max_length=64,blank=True)
    server_type = models.CharField(max_length=64,blank=True)
    server_serial = models.CharField(max_length=64,blank=True)
    server_os = models.CharField(max_length=30,blank=True)
    server_fw = models.CharField(max_length=20,blank=True)