【问题标题】:How to manually define one to one key of legacy database in Django如何在Django中手动定义遗留数据库的一对一键
【发布时间】:2014-09-18 12:41:05
【问题描述】:

我正在尝试为旧数据库定义模型。 数据库架构:

CREATE TABLE sysuser
(
  id serial NOT NULL,
  login character varying(20) NOT NULL,
  passwd character varying(80) NOT NULL,
  created boolean DEFAULT false,
  deleted boolean DEFAULT false,
  CONSTRAINT sysuser_pkey PRIMARY KEY (id)
)
WITH (
  OIDS=FALSE
);


CREATE TABLE userinfo
(
  id integer NOT NULL DEFAULT currval('sysuser_id_seq'::regclass),
  name character varying(256),
  surname character varying(256)
)
WITH (
  OIDS=FALSE
);

这些与使用 id 列的表之间存在一对一的关系。

我的目标是通过提供登录来获取名称和用户名。 在 SQL 中,这将是: SELECT name, surname FROM sysuser JOIN userinfo USING(id) WHERE login = 'joe1'

如何定义我的模型以允许我进行这种查询:

userlogin = 'joe1'
sysuser = Sysuser.objects.filter(deleted=False, created=True, login=userlogin).all()[:1]
#how to acheive this part?
print sysuser.userinfo.name #  Joe

【问题讨论】:

    标签: python django django-models django-1.7


    【解决方案1】:

    我所要做的就是在Sysuser 模型中定义db_column,如下所示:

    userinfo = models.ForeignKey(Userinfo, db_column='id')
    

    【讨论】:

      猜你喜欢
      • 2016-02-15
      • 1970-01-01
      • 2021-05-16
      • 2011-01-17
      • 2021-01-16
      • 2012-06-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多