Hi Javier,
Sorry for not being a bit clearer. Basically I am making a URL call to
return all of the models with a given manufacturer. So the first SQL
statement generated is returning all of the ManufacturerModel AND (because
of the select related) all of the Manufacturers too in one query. The
second query is requesting ALL of the manufacturers regardless of the
filter I described. Now The reason that this second call is being made is
because of my ManufacturerViewSet:- Code details below
class ManufacturerViewSet(viewsets.ModelViewSet):
queryset=Manufacturer.objects.all()
serializer_class = ManufacturerSerialiser
filter_class = ManufacturerFilter
class ManufacturerModelViewSet( viewsets.ModelViewSet):
model=ManufacturerModel
serializer_class=ManufacturerModelSerialiser
filter_class=ManufacturerModelFilter
def get_queryset(self):
queryset = ManufacturerModel.objects.all().select_related()
return queryset
As you can see the queryset is loading all from the database.... What I
would prefer to be able to do is to share the first queryset from the
ManufacturerModelViewSet (which should have all of the correct fields) with
the ManufacturerViewSet. I'm guessing this could be achieved by overriding
get_queryset in my ManufacturerViewSet though I don't know what to do from
there?
On Friday, 11 April 2014 14:17:11 UTC+1, Javier Guerra wrote:
>
> On Fri, Apr 11, 2014 at 3:51 AM, Conrad Rowlands
> <[email protected] <javascript:>> wrote:
> > I would still be keen to know if there is any know method that would
> allow
> > me to load this data using only the 1 queries bringing in all of the
> related
> > fields in the original query.
>
>
> what's the first query about? probably it's part of the authorization
> process, so it might not be appropriate to reduce to just one query.
>
> in any case, the exact number of queries is irrelevant. the important
> thing is to keep it constant for any data size.
>
> for example, a slightly complex task could easily need 10 queries but
> the final throughput you get from the system would be almost the same
> if it's 10 queries or just 1, as long as it's not (n+1) as you had
> before.
>
> of course, you still have to be sure the indexes are optimal to keep
> each query nice and tight!
>
> --
> Javier
>
--
You received this message because you are subscribed to the Google Groups
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/django-users.
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-users/5040ee6b-2984-43fc-833b-cdd2efbf5a73%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.