Opened 13 years ago

Closed 13 years ago

#15494 closed Bug (fixed)

Using only('pk') in related set raises FieldDoesNotExist

Reported by: anonymous Owned by: Sam Thompson
Component: Database layer (models, ORM) Version: 1.2
Severity: Normal Keywords:
Cc: Triage Stage: Accepted
Has patch: yes Needs documentation: no
Needs tests: yes Patch needs improvement: yes
Easy pickings: no UI/UX: no

Description

This is my first ticket, apologies if this is known or I've missed something in my report.

With model A and model B, where model B has a fk to A:

A().b_set.all().only('pk')

Raises "FieldDoesNotExist: B has no field named 'pk'"

In my example I'm instantiating a new object for brevity. The behaviour is the same with a saved object.

I've attached a simple patch, however I couldn't get the testrunner working, so I couldn't write a full patch. Also, I expect this isn't the best method, but I don't know enough about the ORM to know of a better fix.

Attachments (2)

only_pk_related.diff (846 bytes ) - added by sym.roe@… 13 years ago.
only_pk.diff (2.2 KB ) - added by Sam Thompson 13 years ago.
Tests and better comments.

Download all attachments as: .zip

Change History (8)

by sym.roe@…, 13 years ago

Attachment: only_pk_related.diff added

comment:1 by Sym Roe, 13 years ago

comment:2 by anonymous, 13 years ago

Needs tests: set
Patch needs improvement: set

comment:3 by Russell Keith-Magee, 13 years ago

Triage Stage: UnreviewedAccepted

comment:4 by Sam Thompson, 13 years ago

Owner: changed from nobody to Sam Thompson
Status: newassigned

by Sam Thompson, 13 years ago

Attachment: only_pk.diff added

Tests and better comments.

comment:5 by Łukasz Rekucki, 13 years ago

Severity: Normal
Type: Bug

comment:6 by Malcolm Tredinnick, 13 years ago

Resolution: fixed
Status: assignedclosed

In [16668]:

Allow "pk" as a field alias in QuerySet.only() calls.

Thanks to GDorn for the patch. Fixed #15494.

Note: See TracTickets for help on using tickets.
Back to Top