Opened 10 years ago

Last modified 4 years ago

#22724 new Cleanup/optimization

Improve SingleObjectMixin

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

Description

Belatedly following on from https://code.djangoproject.com/ticket/21898

I feel that slug_url_kwarg and pk_url_kwarg don't feel very in keeping with the rest of django to me, and some thought could be put into improving this part of the API.

My personal opinion is that I don't think that SingleObjectMixin should require a pk, slug, or these variables to be set if you provide a queryset of your own. I don't see any reason why we shouldn't have a DetailView without any arguments in the URL at all, if we provide a single object in some manner. At the moment to do this, we have to override get_object() and essentially rewrite it, which does not feel very elegant to me.

Change History (10)

comment:1 by Maxime Turcotte, 10 years ago

Cc: maxime.turcotte@… added

comment:2 by Aymeric Augustin, 10 years ago

Triage Stage: UnreviewedAccepted

Accepting per mjtamlyn's comment on #21898.

comment:3 by Alex Myasoedov, 10 years ago

Has patch: set
Owner: changed from nobody to Alex Myasoedov
Status: newassigned

comment:4 by Tim Graham, 10 years ago

Needs documentation: set
Needs tests: set

Needs tests and (probably) documentation.

comment:5 by Danilo Bargen, 10 years ago

Tests have been provided by msoedov.

https://github.com/django/django/pull/2863

I'm unsure if there's any documentation that needs to be updated... Couldn't find any at a first quick glance, but I could have missed something.

comment:6 by Danilo Bargen, 10 years ago

Needs tests: unset

comment:7 by Tim Graham, 10 years ago

The documentation to be updated is located here. Be sure to annotate the changes with .. versionchanged:: 1.8 and also mention it in the release notes. It would also be helpful to describe this better than "Improve SingleObjectMixin." in the ticket & commit message.

comment:8 by Marc Tamlyn, 10 years ago

Proposed patch was significantly backwards incompatible (see my comments on the PR). It however should be possible to refactor get_object itself to make a better subclassing experience, possibly by adding an inner get_from_queryset method, or by changing the behaviour when no slug or pk is provided.

comment:9 by Maxime Turcotte, 10 years ago

Cc: maxime.turcotte@… removed

comment:10 by Mariusz Felisiak, 4 years ago

Owner: Alex Myasoedov removed
Status: assignednew
Note: See TracTickets for help on using tickets.
Back to Top