Django的。从数据库表中的模型到字段映射字段

时间:2017-01-09 12:43:00

标签: 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_one中使用field_three在模型中映射super_table吗?

2 个答案:

答案 0 :(得分:3)

是的,您可以使用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 :(得分:1)

是的,请使用db_column参数。

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