2

我有一个我无法控制的遗留数据库,我正在尝试在 Django 中为它创建一个模型。它有一个复合主键,我不希望创建肮脏的黑客来在 Django 中实现它。仅将其中一个字段指定为主键的后果是什么,即使它不是唯一的。

我只需要对数据做一些简单的读取。不涉及写作。

4

1 回答 1

1

由于您不会进行任何写作,因此我将完全忽略写作存在的问题。

但是,阅读问题可能会表现为以下之一:

  • primary_key如果您指定的不是唯一的,则链接模型(ForeignKey 和 ManyToManyField)将在查找时失败

  • Model.objects.get(pk=N)MultipleObjectsReturned如果您尝试使用主键查找将失败

  • 如果您指定的主键不是唯一的,管理员的某些方面可能无法正常工作(例如详细视图)

可能还有其他我没有想到的。

考虑使用django-compositekey 之类的东西,它可能会处理试图解决标准 django 行为的问题。

于 2013-03-19T03:23:25.407 回答