Opened 17 years ago
Closed 17 years ago
#5585 closed (duplicate)
Default manager methods should allow _id style arguments for foreign keys
Reported by: | Owned by: | nobody | |
---|---|---|---|
Component: | Database layer (models, ORM) | Version: | dev |
Severity: | 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
Instead of being required to do this --
current_user = User.objects.get(id=47) profile = Profile.objects.get(name='Example', user=current_user)
Since I can use profile.user_id, I would expect to be able to do this --
profile = Profile.objects.get(name='Example', user_id=47)
Both in terms of consistency *and* performance.
Another example gotcha, which obviously makes sense once you know it but needn't be the case if filters etc supported _id style arguments --
pa, created = ProfileAttrib.objects.get_or_create(profile=self.profile, attrib__id=attrib_id, value=value, defaults={'attrib_id':attrib_id} )
Why not, just --
pa, created = ProfileAttrib.objects.get_or_create(profile=self.profile, attrib_id=attrib_id, value=value, )
Note:
See TracTickets
for help on using tickets.
Duplicate of #5535.