我有以下型号:
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
吗?
答案 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')