【问题标题】:flask sql alchemy model (autoloaded) not getting all columns in table烧瓶 sqlalchemy 模型(自动加载)没有获取表中的所有列
【发布时间】:2020-05-01 11:47:59
【问题描述】:

我正在现有的数据库上构建一个烧瓶应用程序,因此无需完全声明整个模型。我有这张桌子:

class Users(db.Model):
__tablename__ = 'my_users'
__table_args__ = {
    'autoload': True,
    'autoload_with': db.engine
}

该表大约有 10 列,但是当我查询数据时,我可以看到该属性:

.__dict__ 

只返回前 4 列。我尝试使用过滤器并过滤,但返回的数据仅包含前 4 列。这是我的查询:

users = Users.query.filter(
    section_serial == sectionserial
).all()

我正在使用 postgres 数据库。这是一个最小的例子:

  CREATE TABLE public.my_users
  (
  user_serial integer NOT NULL DEFAULT nextval('my_users_seq'::regclass),
  user_name character varying(16) NOT NULL,
  user_password character varying(42) NOT NULL,
  id_number character varying(155) NOT NULL,
  date_added timestamp without time zone NOT NULL DEFAULT now(),
  is_enabled boolean NOT NULL DEFAULT true,
  expiry_date date NOT NULL DEFAULT (('now'::text)::date + 30),
  phone_number character varying(254),
  notes text,
  section_serial integer,
  full_name character varying(155) NOT NULL,
  zip_code boolean NOT NULL DEFAULT false,
  CONSTRAINT user_serial_pkey PRIMARY KEY (user_serial)
 );

查询数据后,我只得到 user_serial、user_name、user_password 和 id_number。我无法获取其余的列

【问题讨论】:

  • 请提供minimal reproducible example。首先包括 PostgreSQL 看到的表模式。然后使用示例数据和输出清楚地说明“仅返回前 4 列”的含义。包括一个预期输出的样本。
  • 您好,我已经提供了架构。希望对您有所帮助
  • @snakecharmerb 抱歉我不小心把它漏掉了
  • @snakecharmerb 如果我已经在另一个模型中声明了 my_users 怎么办。我在另一个模型中注意到我刚刚声明了我得到的四列。我认为这是问题

标签: python postgresql flask sqlalchemy flask-sqlalchemy


【解决方案1】:

问题在于它与我使用不同名称创建的登录模型冲突。我认为模型应该只声明一次。

class SystemUsers(db.Model):
       __tablename__ = 'my_users'
userserial = db.Column(
    'user_serial', db.Integer, primary_key=True)
username = db.Column('user_name ', db.String)
password= db.Column('user_password ', db.String)
idnumber = db.Column('id_number', db.String)
isactive = True
isanonymous = False
authenticated = False

【讨论】:

    猜你喜欢
    • 2018-07-07
    • 2022-01-06
    • 1970-01-01
    • 1970-01-01
    • 2020-04-30
    • 1970-01-01
    • 1970-01-01
    • 2015-12-14
    • 2021-02-21
    相关资源
    最近更新 更多