From 1dbe3ec27e3580c119aa69c72f7b1889c1ad0348 Mon Sep 17 00:00:00 2001 From: Charles Leifer Date: Thu, 5 Mar 2026 12:27:32 -0600 Subject: [PATCH] Add query example model definitions [skip ci] --- examples/query_library.py | 53 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 examples/query_library.py diff --git a/examples/query_library.py b/examples/query_library.py new file mode 100644 index 00000000..ddd651a9 --- /dev/null +++ b/examples/query_library.py @@ -0,0 +1,53 @@ +# Collection of Query Examples. +# https://docs.peewee-orm.com/en/latest/peewee/query_library.html + +from functools import partial +from peewee import * + + +db = PostgresqlDatabase('peewee_clubdata') + +class BaseModel(Model): + class Meta: + database = db + +class Member(BaseModel): + memid = AutoField() # Auto-incrementing primary key. + surname = CharField() + firstname = CharField() + address = CharField(max_length=300) + zipcode = IntegerField() + telephone = CharField() + recommendedby = ForeignKeyField('self', backref='recommended', + column_name='recommendedby', null=True) + joindate = DateTimeField() + + class Meta: + table_name = 'members' + + +# Conveniently declare decimal fields suitable for storing currency. +MoneyField = partial(DecimalField, decimal_places=2) + + +class Facility(BaseModel): + facid = AutoField() + name = CharField() + membercost = MoneyField() + guestcost = MoneyField() + initialoutlay = MoneyField() + monthlymaintenance = MoneyField() + + class Meta: + table_name = 'facilities' + + +class Booking(BaseModel): + bookid = AutoField() + facility = ForeignKeyField(Facility, column_name='facid') + member = ForeignKeyField(Member, column_name='memid') + starttime = DateTimeField() + slots = IntegerField() + + class Meta: + table_name = 'bookings'