2017-01-09 60 views
1

我有以下型號:Django。從模型地圖領域在數據庫表字段

class MyModel(models.Model): 
    field_one = models.CharField(max_length=255) 
    field_two = models.CharField(max_length=255) 

    class Meta: 
     db_table = "super_table" 

和下面的數據庫表:

CREATE TABLE public.super_table 
(
    id integer NOT NULL DEFAULT nextval('super_table_id_seq'::regclass), 
    field_two character varying(255) NOT NULL, 
    field_three character varying(255) NOT NULL, 
) 

可不知何故,我在模型field_three在地圖field_one我的super_table

回答

2

是的,你可以與db_column

Field.db_column數據庫列用於此 字段的名稱。如果沒有給出,Django將使用該字段的名稱。

如果您的數據庫列名是SQL保留字,或者包含 字符,這些字符在Python變量名中不允許使用 - 值得注意的是, 連字符 - 沒關係。 Django的引用列名和表名後面的 現場

class MyModel(models.Model): 
    field_one = models.CharField(max_length=255, db_column='field_three') 
    field_two = models.CharField(max_length=255) 

    class Meta: 
     db_table = "super_table" 
1

是,使用db_column說法。

field_one = models.CharField(max_length=255, db_column='field_three')