5

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

我有一个 PartCode 作为键的零件表 我有一个 VendorCode 作为键的供应商表

我有一个 PartsVendor 表,其中包含 FK 到 Parts 和 Vendor,以及有关关系的其他信息。我使用的是“through”参数,所以它独立存在,但它使用 PartCode+VendorCode 作为复合键,Django 不支持。只有在使用 South 或像 dumpdata 这样它想查看主键的函数时,我才会遇到问题。然而,这些都是相当大的问题。

我的临时解决方案是只添加一个 _id 字段作为 AutoField 并在 Postgres 中添加一个串行字段,它工作正常,但是当使用 South 时,它会因默认 = False 而 NOT NULL 为真这一事实而窒息。

我已经走上了尝试编写自定义字段的道路,但这似乎是一条死胡同,因为我实际上并没有更改有关字段类型的任何内容。

4

1 回答 1

3

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

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

我没有对此进行测试,但似乎逻辑串行字段在 Django 中都将表示为整数。将默认属性应用于字段并将其从插入中删除。

我希望这会有所帮助。:)

于 2011-04-14T21:23:04.400 回答