我有一个我无法控制的遗留数据库,我正在尝试在 Django 中为它创建一个模型。它有一个复合主键,我不希望创建肮脏的黑客来在 Django 中实现它。仅将其中一个字段指定为主键的后果是什么,即使它不是唯一的。
我只需要对数据做一些简单的读取。不涉及写作。
由于您不会进行任何写作,因此我将完全忽略写作存在的问题。
但是,阅读问题可能会表现为以下之一:
primary_key
如果您指定的不是唯一的,则链接模型(ForeignKey 和 ManyToManyField)将在查找时失败
Model.objects.get(pk=N)
MultipleObjectsReturned
如果您尝试使用主键查找将失败
如果您指定的主键不是唯一的,管理员的某些方面可能无法正常工作(例如详细视图)
可能还有其他我没有想到的。
考虑使用django-compositekey 之类的东西,它可能会处理试图解决标准 django 行为的问题。