Skip to content

Commit 439a7a7

Browse files
committed
use class object in class methods via cls to ensure it cooperates well with subclassing.
fixes UWPCE-PythonCert#98
1 parent 0a0d00f commit 439a7a7

File tree

3 files changed

+6
-4
lines changed

3 files changed

+6
-4
lines changed

resources/session03/learning_journal/learning_journal/models.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ class User(Base):
7272
def by_name(cls, name, session=None):
7373
if session is None:
7474
session = DBSession
75-
return DBSession.query(User).filter(User.name == name).first()
75+
return DBSession.query(cls).filter(cls.name == name).first()
7676

7777
def verify_password(self, password):
7878
manager = Manager()

resources/session03/models.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,5 +66,7 @@ class User(Base):
6666
password = Column(Unicode(255), nullable=False)
6767

6868
@classmethod
69-
def by_name(cls, name):
70-
return DBSession.query(User).filter(User.name == name).first()
69+
def by_name(cls, name, session=None):
70+
if session is None:
71+
session = DBSession
72+
return DBSession.query(cls).filter(cls.name == name).first()

source/presentations/session03.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ Questions About the Homework?
8989
9090
@classmethod
9191
def by_name(cls, name):
92-
return DBSession.query(User).filter(User.name == name).first()
92+
return DBSession.query(cls).filter(cls.name == name).first()
9393
9494
`View this model online <https://github.com/cewing/training.python_web/blob/5e02f6f84322145433c515c191679ccf976dcae4/resources/session03/models.py#L62>`_
9595

0 commit comments

Comments
 (0)