gpt4 book ai didi

python - 主键字段上的 serialize=False 是什么意思?

转载 作者:太空狗 更新时间:2023-10-30 01:05:47 24 4
gpt4 key购买 nike

我没有在 Django 文档和源代码中找到主键字段上 serialize=False 的原因。是不是有什么特别的原因要设置?

谢谢

最佳答案

Azd325,

听起来很简单,这个字段不会成为序列化对象的一部分。

不过,我猜你的问题与正在迁移的模型有关,并且生成的 ID 为 serialize=False,对吗?例如 here .. 没有真正的文档,因为它是 Django 的引擎技巧来创建一个内部 ID,因为您决定不为您的对象声明一个显式 ID..

我刚刚做的一些测试

创建没有显式 ID 的模型

class Model1Test(models.Model):
justafield = models.CharField(max_length=1000)

迁移结果

class Migration(migrations.Migration):

dependencies = [
]

operations = [
migrations.CreateModel(
name='Model1Test',
fields=[
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
('justafield', models.CharField(max_length=1000)),
],
),
]

数据库级脚本

CREATE TABLE public.module1_model1test
(
id integer NOT NULL DEFAULT nextval('module1_model1test_id_seq'::regclass),
justafield character varying(1000) NOT NULL,
CONSTRAINT module1_model1test_pkey PRIMARY KEY (id)
)

这样做的一些充分理由来自 Quassnoi :

  1. 你需要你的 table 可以加入某些东西
  2. 如果你想让你的表聚集,你需要某种主键
  3. 如果您的表设计不需要主键,请重新考虑您的设计:很可能您遗漏了一些东西。为什么要保留相同的记录?

关于python - 主键字段上的 serialize=False 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42229412/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com