| | 18 | |
| | 19 | That would make implementing a model mixin that supports a `select_for_update` override quite easy |
| | 20 | |
| | 21 | {{{#!python |
| | 22 | class BaseModel(models.Model): |
| | 23 | class Meta: |
| | 24 | abstract = True |
| | 25 | |
| | 26 | def refresh_from_db(self, using=None, fields=None, from_queryset=None, select_for_update=False): |
| | 27 | if select_for_update: |
| | 28 | from_queryset = ( |
| | 29 | self.__class__._base_manager.db_manager(using) |
| | 30 | if from_queryset is None |
| | 31 | else from_queryset |
| | 32 | ).select_for_update() |
| | 33 | return super().refresh_from_db(fields=fields, from_queryset=from_queryset) |
| | 34 | }}} |