什么时候应该覆盖并使用自定义主键django



继承django模型会导致模型具有默认主键(id(

默认情况下,django为主键生成BigAutoField

我检查了一些用django编写的著名应用程序,如posthogzulipsentinemozilla插件服务器。它们都使用了自定义主键。

(其中一些同时使用了自定义主键和默认主键(

我想知道我们什么时候应该覆盖这种行为并拥有自定义主键?

需要澄清的是:很明显,我的问题不是什么时候应该将主键更改为其他内容(例如姓名或电子邮件字段(,因为这取决于你的意愿事实上

我想知道默认主键的缺点是什么,我应该担心吗?

一个缺点是默认的自动字段每次递增1,因此您的第一个模型实例的id将为1,然后是2,然后是3等。假设您可以通过domain.com/<userid>/profile访问用户公共配置文件。这是一个安全风险,因为找出任何给定用户的数据库ID、用户数量等都很简单,对于任何使用该模式的模型来说都是如此。

最新更新