Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.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 在South中处理PostgreSQL串行字段类型_Django_Postgresql_Django South - Fatal编程技术网

Django 在South中处理PostgreSQL串行字段类型

Django 在South中处理PostgreSQL串行字段类型,django,postgresql,django-south,Django,Postgresql,Django South,我使用的是一个遗留数据库,它以db的方式做了一些有意义的事情,但不确定如何在Django中表示它们,以便South和Django自己能够处理它们 我有一个零件表,零件代码是键 我有一个以VendorCode为键的Vendor表 我有一个PartsVendor表,其中包含FK对零件和供应商的回复,以及有关关系的其他信息。我使用的是“through”参数,因此它是独立的,但它使用PartCode+VendorCode作为复合键,这在Django中是不受支持的。只有在使用South或dumpdata等

我使用的是一个遗留数据库,它以db的方式做了一些有意义的事情,但不确定如何在Django中表示它们,以便South和Django自己能够处理它们

我有一个零件表,零件代码是键 我有一个以VendorCode为键的Vendor表

我有一个PartsVendor表,其中包含FK对零件和供应商的回复,以及有关关系的其他信息。我使用的是“through”参数,因此它是独立的,但它使用PartCode+VendorCode作为复合键,这在Django中是不受支持的。只有在使用South或dumpdata等函数时,如果希望看到主键,我才会遇到问题。然而,这些都是相当大的问题

我的临时解决方案是只添加一个_id字段作为AutoField,并在Postgres中添加一个串行字段,这样可以很好地工作,但是当使用South时,它会因为默认值=False,而非NULL值为true而受阻


我一直在尝试编写自定义字段,但这似乎是一条死胡同,因为我实际上没有更改字段类型。

在PostgreSQL中,串行类型实际上不是常规类型

serial所做的是用序列中下一个数字的默认值设置一个整数字段。序列存储在数据库的其他位置(也可以手动创建)

我没有对此进行测试,但逻辑串行字段在Django中似乎都表示为整数。将该属性应用于字段,并在插入时不使用该属性

我希望这能有所帮助

这可能有助于: