2015-12-24 31 views
1

按照Django文檔https://docs.djangoproject.com/en/1.9/topics/db/models/如何執行CHAR(N)數據類型,而不是爲varchar(N)在Django模型字段

它的ORM創造的,而不是charvarchar場。

from django.db import models 

class Person(models.Model): 
    first_name = models.CharField(max_length=30) 
    last_name = models.CharField(max_length=30) 

和等效SQL語句

CREATE TABLE myapp_person (
    "id" serial NOT NULL PRIMARY KEY, 
    "first_name" varchar(30) NOT NULL, 
    "last_name" varchar(30) NOT NULL 
); 

所以在這裏我們可以看到它使用VARCHAR,但我可以用char代替。我無法找到一個方法。 除了手動更改列

+1

爲什麼要這樣做?如果少數'varchar'變成'char',那麼 –

+0

會不會提高db的性能?我只是好奇,我可能錯了@ IgnacioVazquez-Abrams – rocktheparty

回答

1

我認爲你最好的選擇是寫一個custom field type,根據CharField並改變它的db_type()方法。檢查相關示例here

相關問題