2017-01-09 62 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')