Azd*_*325 5 python django django-models
我没有在Django文档和源代码中找到serialize=False主键字段的原因。设置它是否有特殊原因?
谢谢
Azd325,
听起来很简单,但此字段不会成为序列化对象的一部分。
虽然,我猜您的问题与正在迁移的模型有关,并且模型的生成ID带有serialize = False,对吗?如在这里 ..是不是真的在这个文件,因为它是Django的引擎伎俩因为你决定不宣布一个明确的ID为你的对象创建固有ID ..
我刚刚做的一些测试
创建没有显式ID的模型
class Model1Test(models.Model):
justafield = models.CharField(max_length=1000)
Run Code Online (Sandbox Code Playgroud)
迁移结果
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)),
],
),
]
Run Code Online (Sandbox Code Playgroud)
数据库级脚本
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)
)
Run Code Online (Sandbox Code Playgroud)
Quassnoi这样做有一些很好的理由: