Nix
Nix

Reputation: 211

flask sql alchemy model (autoloaded) not getting all columns in table

I am building a flask application over an already existing database so there was no need to declare the whole models fully. I have this table:

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

the table has about 10 columns but when i query the data i can see that the attribute:

.__dict__ 

only returns the first 4 columns. i have tried using filter and also filter by but data returned only contains the first 4 columns. Here is my query:

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

I am using the postgres database. Here is a minimal example:

  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)
 );

After querying the data i only get user_serial, user_name, user_password and id_number. I cannot get the rest of the columns

Upvotes: 1

Views: 591

Answers (1)

Nix
Nix

Reputation: 211

The problem was it was conflicting with a login model i had created though with a different name. I think models should just be declared once.

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

Upvotes: 1

Related Questions