django - Django:非主键自动递增字段
问题描述
有没有一种可能的方法来创建一个不容易失败的non primary-key auto incremented field
like a (重复的ids,...)?AutoField/BigAutoField
解决方案
我们创建AutoFieldNonPrimary
并使用如下自定义字段
from django.db.models.fields import AutoField
from django.db.models.fields import checks
class AutoFieldNonPrimary(AutoField):
def _check_primary_key(self):
if self.primary_key:
return [
checks.Error(
"AutoFieldNonPrimary must not set primary_key=True.",
obj=self,
id="fields.E100",
)
]
else:
return []
class YourModel(models.Model):
auto_field = models.AutoFieldNonPrimary(primary_key=False)
推荐阅读
- mysql - 您如何将 pandas 列中的所有值转换为 MySQL 数据库中的值
- c# - ASP.NET Core MVC 不显示动态图像
- json - 使用一个函数将 JSON 解析为结构
- kubernetes - 如何使用部署定义 pod 的副本名称?
- python - Seaborn Barplot 上的色调
- templates - 尝试在 Shopify 中使用 Liquid 模板连接表单输入
- nlp - 预训练的 FastText 如何处理多词查询?
- javascript - 基于来自另一个数组(非静态)的键的对象子集数组,然后过滤
- bootstrap-4 - Bootstrap 4 从不同的行和列更改动态高度卡顺序
- string - 标识符 sstream 未定义?