2017-02-14 24 views

回答

1

Azd325,

它是因爲它的聲音,本場不會是序列化對象的一部分,簡單..

雖然,我猜你的問題涉及到的模型是正在被遷移並且有一個serialize = False的生成ID,對吧?例如在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. 你需要你的表是可連接的東西
  2. 如果你想成爲聚集你的表,你需要某種主要的鍵
  3. 如果您的表格設計不需要主鍵,請重新考慮您的設計:最有可能的是,您錯過了一些東西。爲什麼保留相同的記錄