Opened 18 months ago

Last modified 18 months ago

#34239 closed New feature

Resolve load type-hinted objects in views — at Version 1

Reported by: Aldo Mateli Owned by: nobody
Component: Generic views Version: dev
Severity: Normal Keywords:
Cc: Triage Stage: Unreviewed
Has patch: no Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no

Description (last modified by Aldo Mateli)

In this ticket I'd like to propose a new feature which loads models from parameter information. A common pattern in views is to have a primary key or candidate key to locate a specific record via get_object_or_404.

What I'd like to propose is to allow users to type-hint a specific parameter and have django load the object automatically or throw 404 if it doesn't exist.

# url pattern for this view: posts/<post>/
# the argument name matches the url variable.
def some_view(request, post: Post):
    pass

This feature would also work if there are multiple objects being loaded in the same view.
Currently in our repository we do this via a decorator, but I feel that this would be a helpful feature that can be merged into core as it reduces the amount of boilerplate.

This feature is inspired from a similar one in Symfony framework. https://symfony.com/doc/current/doctrine.html#doctrine-entity-value-resolver

Looking forward to your thoughts. I can also supply the implementation for this if we decide it is worth adding.

Change History (1)

comment:1 by Aldo Mateli, 18 months ago

Description: modified (diff)
Note: See TracTickets for help on using tickets.
Back to Top