However in the admin view if one has `select_related = ('foo__bar', )` it
raises the error `Non-relational field given in select_related: 'bar'.
Choices are: ...`. One has to do `select_related = ('foo', )`. Hence to
select only certain fields, one has to override the `get_queryset`.
Seems a bit inconsistent? I guess it goes hand in hand with not allowing
foreign key fields in list display (#5863) etc.
--
Ticket URL: <https://code.djangoproject.com/ticket/32170>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
Old description:
> In a model one can do `.select_related('foo__bar')`.
>
> However in the admin view if one has `select_related = ('foo__bar', )`
> it raises the error `Non-relational field given in select_related: 'bar'.
> Choices are: ...`. One has to do `select_related = ('foo', )`. Hence to
> select only certain fields, one has to override the `get_queryset`.
>
> Seems a bit inconsistent? I guess it goes hand in hand with not allowing
> foreign key fields in list display (#5863) etc.
New description:
In a model one can do `.select_related('foo__bar')`.
However in the admin view if one has `select_related = ('foo__bar', )` it
raises the error `Non-relational field given in select_related: 'bar'.
Choices are: ...`. One has to do `list_select_related = ('foo', )`. Hence
to select only certain fields, one has to override the `get_queryset`.
Seems a bit inconsistent? I guess it goes hand in hand with not allowing
foreign key fields in list display (#5863) etc.
--
--
Ticket URL: <https://code.djangoproject.com/ticket/32170#comment:1>
* status: new => closed
* resolution: => needsinfo
Comment:
Hi Michael.
`list_select_related` is
[https://github.com/django/django/blob/ebb08d19424c314c75908bc6048ff57c2f872269/django/contrib/admin/views/main.py#L504-L505
passed unchanged to the underlying `select_related()` method]:
{{{
if self.list_select_related:
return qs.select_related(*self.list_select_related)
}}}
So it looks like it should work, but perhaps I've misunderstood you here:
> However in the admin view if one has `select_related = ('foo__bar',
)`...
Can I ask you to provide a sample project demonstrating the issue exactly,
or ask that you add a test case to the Django test suite showing it, so we
can assess?
Changelist tests, including those for `list_select_related` are in
https://github.com/django/django/blob/master/tests/admin_changelist/tests.py
Thanks.
--
Ticket URL: <https://code.djangoproject.com/ticket/32170#comment:2>