0

my Model is

class RidesModel(db.Model):
__tablename__ = "rides"

ride_id = db.Column(db.Integer, primary_key=True)

start_address = db.Column(db.String())
end_address = db.Column(db.String())
ride_datetime = db.Column(db.DateTime(), nullable=False)
ride_by = db.Column(db.String(), db.ForeignKey("users.email"), nullable=False)
ride_created_on = db.Column(db.DateTime(), nullable=False)


@classmethod
def find_by_email(cls, _email: str) -> "RidesModel":
    return cls.query.filter_by(ride_by=_email).all()

@classmethod
def find_between_dates(cls, _email: str, dt1, dt2) -> "RidesModel":
    return cls.query.filter_by(
            ride_by=_email,
            ride_datetime.between(dt1, dt2)

    ).all()

the mthod find_by_email works fine but find_between_dates give an error this does not work. I get error in the console

m_rides.py", line 42
    ride_datetime.between(dt1, dt2)
    ^
SyntaxError: positional argument follows keyword argument

and pyCharm says "Positional argument after keyword argument"

Could someone please help me?

GKV
  • 864
  • 1
  • 12
  • 25
  • This has nothing to do with the "between" clause or with sqlalchemy. The problem is with the Python syntax in the call to `cls.query.filter_by(ride_by=_email, ride_datetime.between(dt1, dt2))`. See the duplicated question – DeepSpace Apr 22 '20 at 20:00
  • I tried swapping the arguments, it doesn't work :( It says an unresolved reference ride_datetime – GKV Apr 22 '20 at 20:02
  • See https://stackoverflow.com/questions/2128505/difference-between-filter-and-filter-by-in-sqlalchemy – Ilja Everilä Apr 23 '20 at 07:58

0 Answers0