0

I'm using a query where I'm performing a distinct query on 4 columns of a table but I want to make the distinct ignore casing and remove duplicates with the same name

The query is like

PublicationFont.query.filter((PublicationFont.publication_id == id) | (PublicationFont.is_public == include_public)).distinct(PublicationFont.font_name,PublicationFont.font_family,PublicationFont.font_style,PublicationFont.font_weight).order_by(PublicationFont.font_name.asc(),PublicationFont.font_weight.desc())

I want to ignore the casing in the PublicationFont.font_name

davidism
  • 121,510
  • 29
  • 395
  • 339
Rohan Keskar18
  • 193
  • 1
  • 10

1 Answers1

0

This advice of https://stackoverflow.com/users/8368630/alex should work: Case Insensitive Flask-SQLAlchemy Query. You probably get what you want when do it like that:

PublicationFont.query.filter(
    (PublicationFont.publication_id == id) | 
    (PublicationFont.is_public == include_public)
).distinct(
    func.lower(PublicationFont.font_name),
    PublicationFont.font_family,
    PublicationFont.font_style,
    PublicationFont.font_weight
).order_by(
    PublicationFont.font_name.asc(),
    PublicationFont.font_weight.desc()
)
jorzel
  • 1,216
  • 1
  • 8
  • 12