继承django 模型会导致模型具有默认主键(id),
默认情况下,django为主键生成BigAutoField。
我已经检查了一些用django编写的著名应用程序,比如posthog、zulip、sentry、,它们都使用了自定义主键。
(其中一些用户同时使用了自定义主键和默认值)
我想知道什么时候我们应该重写这个行为并拥有自定义的主键?
澄清:很明显,我的问题不是什么时候应该改变其他东西的主键(例如,姓名或电子邮件),因为这实际上取决于你的能力。
我想知道默认主键的缺点是什么,我应该担心它吗?
发布于 2022-09-08 09:27:38
一个缺点是默认的自动字段每次增加1,所以您的第一个模型实例的id为1,然后2,然后3等等。假设您可以通过domain.com/<userid>/profile访问用户公共配置文件。这是一种安全风险,因为找出任何给定用户的数据库ID、用户数量等等都很简单,对于任何使用该模式的模型都是如此。
https://stackoverflow.com/questions/73635800
复制相似问题