@@ -78,13 +78,13 @@ class UpdateRequest:
78
78
specific model instance and its database row.
79
79
80
80
"""
81
- def __init__ (self , instance , lookup = True ):
81
+ def __init__ (self , instance ):
82
82
self ._instance = instance
83
83
self ._values = {}
84
84
self ._props = {}
85
85
self ._literal = True
86
86
self ._locator = None
87
- if lookup and instance .__table__ is not None :
87
+ if instance .__table__ is not None :
88
88
try :
89
89
self ._locator = instance .lookup ()
90
90
except LookupError :
@@ -413,7 +413,7 @@ class CRUDModel(Model):
413
413
def __init__ (self , ** values ):
414
414
super ().__init__ ()
415
415
self .__profile__ = None
416
- self ._update_request_cls (self , False ).update (** values )
416
+ self ._update_request_cls (self ).update (** values )
417
417
418
418
@classmethod
419
419
def _init_table (cls , sub_cls ):
@@ -532,7 +532,7 @@ def append_where_primary_key(self, q):
532
532
await user.query.gino.first()
533
533
534
534
.. deprecated:: 0.7.6
535
- Use :meth:`lookup` instead.
535
+ Use :meth:`. lookup` instead.
536
536
537
537
"""
538
538
return q .where (self .lookup ()) # pragma: no cover
@@ -542,8 +542,11 @@ def lookup(self):
542
542
Generate where-clause expression to locate this model instance.
543
543
544
544
By default this method uses current values of all primary keys, and you
545
- can override it to behave differently. All instance-level CRUD
546
- operations depend on this method internally.
545
+ can override it to behave differently. Most instance-level CRUD
546
+ operations depend on this method internally. Particularly while
547
+ :meth:`.lookup` is called in :meth:`.update`, the where condition is
548
+ used in :meth:`.UpdateRequest.apply`, so that queries like ``UPDATE ...
549
+ SET id = NEW WHERE id = OLD`` could work correctly.
547
550
548
551
:return:
549
552
0 commit comments