姜戈。将字段从模型映射到数据库表中的字段

lat*_*sha 3 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"
Run Code Online (Sandbox Code Playgroud)

以及以下数据库表:

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,
)
Run Code Online (Sandbox Code Playgroud)

我可以以某种方式在我的field_one模型field_three中映射super_table吗?

e4c*_*4c5 6

是的,您可以使用 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"
Run Code Online (Sandbox Code Playgroud)