Skip to content

feat: Implement model.objects.last()#70

Merged
hakancelikdev merged 5 commits intomainfrom
feature/implement-objects-last
Feb 19, 2026
Merged

feat: Implement model.objects.last()#70
hakancelikdev merged 5 commits intomainfrom
feature/implement-objects-last

Conversation

@hakancelikdev
Copy link
Copy Markdown
Owner

Returns the last record from the database as a model instance, or None if no records exist.

Closes #32

hakancelikdev and others added 5 commits February 19, 2026 05:17
Returns the last record from the database as a model instance,
or None if no records exist.

Closes #32

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Avoid iteration entirely by using db.keys()[0] and db.keys()[-1]
with header key handling.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Fix min/max validator append bug: validators were appended on every
  __set__ call causing list to grow indefinitely. Moved to __call__
  where they are set up once at class definition time.
- Replace contextlib.suppress with try/except in __get__ to avoid
  context manager overhead on every attribute access.
- Add AutoField.compute_id() static method and use it in get() and
  exists() to avoid creating temporary AutoField instances.
- Optimize update() to work directly with serialized data instead of
  deserializing the full model and re-serializing.
- Optimize all() to batch-read all records in a single db session
  instead of opening/closing the db for each record.
- Replace lazy __import__("uuid") with module-level import.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@hakancelikdev hakancelikdev merged commit 664d9bb into main Feb 19, 2026
14 checks passed
@hakancelikdev hakancelikdev deleted the feature/implement-objects-last branch February 19, 2026 02:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Implement model.objects.last()

1 participant